这是global.php文件的内容:
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;
}
}
}
由于某种原因,更新查询无效。如果我评论计数查询它的工作原理。我观察到,由于某些上帝知道的原因,我不能在同一个函数中执行多个查询:P。我收到此消息:Statement couldn't be produced with sql: ......
。如果我在phpmyadmin中执行它们,那么两个查询都能正常工作。任何人都可以解释为什么这不起作用?我有点绝望:| ,我花了几个小时在这个
答案 0 :(得分:0)
这可能是一个格式/准备问题,看一下manual它建议使用以下格式来准备你的陈述:
$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) );