Zend framework2 如何使用ZEND 2中的同一适配器在同一函数中执行多个查询?
这是global.php文件的内容:Zend framework2 如何使用ZEND 2中的同一适配器在同一函数中执行多个查询?,zend-framework2,execute,Zend Framework2,Execute,这是global.php文件的内容: return array( 'db' => array( 'driver' => 'Mysqli', 'database' => 'web_builder', 'username' => 'root', 'password' => '' ), 'service_manager' => array( 'factories'
return array(
'db' => array(
'driver' => 'Mysqli',
'database' => 'web_builder',
'username' => 'root',
'password' => ''
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
),
);
这是我的模型的内容:
namespace Application\Model;
use Zend\Db\Adapter\Adapter;
use Zend\Db\TableGateway\AbstractTableGateway;
class UsersTable extends AbstractTableGateway {
public function __construct(Adapter $adapter) {
$this->adapter = $adapter;
}
public function user_login($getData,$session_id){ // manage the user's login
$email = $getData['login_email'];
$password = $getData['login_password'];
$select = $this->adapter->query ("select count(*) as counter from users where email = '$email' and password = '".md5($password)."'");
$results = $select->execute();
if ($results->current()['counter'] == 1 ){
$select->getDataSource()->getResource()->closeCursor();
$update_user = $this->adapter->query("UPDATE users SET session_id = '".$session_id."' WHERE email = '".$email."'");
$update_session = $update_user->execute();
return 1;
}else{
return 0;
}
}
}
由于某些原因,更新查询不起作用。如果我对count查询进行了注释,它就会工作。我发现我不能在同一个函数中执行多个查询,原因是:P。我收到了这样一条消息:
语句不能用sql生成:…
。如果我在phpmyadmin中执行它们,这两个查询都可以完美地工作。有人能解释一下为什么这不起作用吗?我有点绝望:|,我花了几个小时在这个问题上这可能是一个格式/准备问题,看看它建议以下格式来准备您的声明:
$adapter->query('SELECT * FROM `artist` WHERE `id` = ?', array(5));
因此,在您的情况下,请尝试将其格式化为:
$select = $this->adapter->query ('select count(*) as counter from users where email = ? and password = ? ', $email , md5($password) );
现在我得到了以下消息:可捕获的致命错误:传递给Zend\Db\Adapter\Adapter::query()的参数3必须实现接口Zend\Db\ResultSet\resultstenterface,字符串给定,在第63行的C:\xampp\htdocs\zf2\module\Application\src\Application\Model\UsersTable.php中调用,并在第166行的C:\xampp\htdocs\zf2\vendor\zendframework\zendframework\library\Zend\Db\Adapter\Adapter.php中定义,这可能是原因吗?email='$email'->email='.“$email.”