2012-10-28 6 views
0

Mysqli 드라이버가 구성된 데이터베이스 테이블을 사용하여 웹 인증을 구현하기 위해 zend 지침을 따라했습니다. 페이지를 렌더링 할 때zend framework 2 mysqli 인증 실패

, 다음과 같은 예외 후 인증 할 방법을 실행 나타납니다 :

Zend\Db\Adapter\Exception\ErrorException 
    File: 
    C:\xampp\htdocs\pfc\vendor\ZF2\library\Zend\Db\Adapter\Driver\Mysqli\Statement.php:188 
    Mensaje: 
    Commands out of sync; you can't run this command now 
운전자가 무료하지 않고 이전 쿼리의 결과를 배수 querys를 실행할 수 없기 때문에이 일어날 것 같다

첫 번째 (다중 질의 문제).

dbAdapter의 드라이버를 pdo_mysql로 ​​변경하면 authenticate 메소드가 정상적으로 작동한다는 것을 발견했습니다. 그러나 성능상의 이유로 PDO 드라이버를 사용하고 싶지 않습니다.

어떻게 Mysqli 드라이버를 구성 할 수 있습니까?

내 코드를 넣고 :

$dbAdapter = new DbAdapter(array(
     //'driver' => 'Mysqli', //This driver fail when call authenticate method 
     'driver' => 'Pdo_Mysql', //This driver works ok 
     'database' => 'securedraw', 
     'username' => 'root', 
     'password' => '' 
    ));  
    $authAdapter = new AuthDbTableAdapter($dbAdapter); 
    $authAdapter->setTableName('users') 
       ->setIdentityColumn('mail') 
       ->setCredentialColumn('password') 
       ->setIdentity('josep') 
       ->setCredential('josep'); 
    $authResult = $authAdapter->authenticate(); //Method fail 

답변

0

내가 무슨 문제가하는 당신이 방법으로 쿼리를 실행을 혼합하는 것입니다 확신합니다. 그래서 당신이 가진 것은 PDO 호출에 대해 내가 나 자신에게

을이 작업을 수행하는 방법을 배우려고 노력하고 있어요 당신이 내가 https://packages.zendframework.com/docs/latest/manual/en/modules/zend.db.adapter.html 여기에이 페이지를 참조 할 것

$dbAdapter = new DbAdapter(array(
    'driver' => 'Mysqli', //This driver fail when call authenticate method 
    'database' => 'securedraw', 
    'username' => 'root', 
    'password' => '' 
));  
$adapter = new Zend\Db\Adapter\Adapter($configArray); 

$adapter->query("QUERY HERE"); 

을 할 필요가 MySQLi 사용