Techniczny

Icon

CodeIgniter i procedury składowane w MySQL

Używając CodeIgnitera z procedurami z MySLQ 5 napotkałem się na błąd:

A Database Error Occurred
Error Number: 1312
PROCEDURE usr_uzytkownik_sel_check_login can't return a result set in the given context
CALL usr_uzytkownik_sel_check_login();

Obejściem togo jest zmiana w /System/database/drivers/mysql/mysql_driver.php funkcji db_connect() na

function db_connect() {
define("CLIENT_MULTI_RESULTS",131072);//Enable/disable multi-results
define("CLIENT_MULTI_STATEMENTS",65536);//Enable/disable multi-statement support
return @mysql_connect($this->hostname, $this->username, $this->password, TRUE,CLIENT_MULTI_STATEMENTS);
}

i ustawienie w configu database.php

$db['default']['pconnect'] = FALSE;

Teraz już możemy odwoływać się do naszej procedury z modelu 8-)

$sql = 'call usr_uzytkownik_sel_check_login(?)';
$param = array($login);
return $query = $this->db->query($sql, $param);

Leave a Reply