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;
答案 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的类方法。