【发布时间】:2011-01-31 00:10:56
【问题描述】:
我似乎无法让它连接到数据库,以便我可以运行我准备好的语句。有人知道我忘记了什么吗?
private function check_credentials($plain_username, $password)
{
global $dbcon;
$ac = new ac();
$ac->dbconnect();
$userid = $dbcon->prepare('SELECT id FROM users WHERE username = :username AND password = :password LIMIT 1');
$userid->bindParam(':username', $plain_username);
$userid->bindParam(':password', $password);
$userid->execute();
$id = $userid->fetch();
Return $id;
}
编辑:我将 SQL 查询从 SELECT FROM 查询更改为 INSERT INTO 查询并且它有效。到底是怎么回事?
【问题讨论】:
-
你的
errorInfo()在说什么? php.net/manual/en/pdo.errorinfo.php 无论如何你都需要某种错误处理,你不觉得吗? ...今天早些时候我们没有进行过这种交流吗? -
致命错误:在 E:\PortableApps\xampp\htdocs\SN\AC\ACclass.php 中出现消息 'SQLSTATE[HY093] 的未捕获异常 'PDOException':无效参数号:未绑定参数' :61 堆栈跟踪:#0 E:\PortableApps\xampp\htdocs\SN\AC\ACclass.php(61): PDOStatement->execute(Array) #1 E:\PortableApps\xampp\htdocs\SN\AC\ACclass .php(34): ac->check_credentials('joe', '94a02c32b6ff629...') #2 E:\PortableApps\xampp\htdocs\SN\UI\UIclass.php(17): ac->authentication() #3 E:\PortableApps\xampp\htdocs\SN\index.php(4): ui->start() #4 {main} 在 E:\PortableApps\xampp\htdocs\SN\AC\ACclass.php 中抛出第 61 行
-
@pekka 相同的功能,不同的问题。摆脱了另一个问题,因为我意识到我问错了问题,这让人们失望了
-
@Cortopasta 我明白了。奇怪的。准备工作看起来不错,但是“没有绑定参数”说得很清楚。也许比我更有 PDO 经验的人可以告诉你更多。
-
我不知道 ac() 是什么,但是,我认为这段代码唯一明显错误的是“Return”应该是“return”。
标签: php mysql oop pdo prepared-statement