转换为PDO mysql

时间:2014-02-03 17:29:57

标签: php mysql pdo

当我尝试将系统转换为PDO_MYSQL时,我遇到了一些问题。 我试图改变这一行:

return (mysql_result(mysql_query("SELECT COUNT('id') FROM accounts WHERE name='$username' AND password='$password';"), 0) == 1) ? $user_id : false;

类似于:

$sth = $dbc1->PDOPrepare("SELECT COUNT('id') FROM accounts WHERE name='$username' AND password='$password';");
$sth->execute();
return $sth->fetchColumn();

但我知道这不正确,它也不行。那么,更有经验的人可以看一下吗?我没有得到这件作品== 1) ? $user_id : false; ..提前致谢。

编辑: 使用return $sth->fetchColumn() ? $user_id : false;

1 个答案:

答案 0 :(得分:2)

我不确定你的程序中PDOPrepare做了什么;但是你要以错误的方式去准备好的陈述。请尝试以下方法:

$sth = $dbc1->prepare("SELECT COUNT(id) FROM accounts WHERE name = ? AND password = ?");
$sth->execute( array($username, $password) );
return ( intval($sth->fetchColumn()) == 1 ) ? $user_id : false;;

请注意,我使用prepare更改了PDOPrepare,因为这是PDO的类方法。