【发布时间】:2015-05-26 11:01:49
【问题描述】:
谁能帮我把它转换成 PDO
// verify email and password pair
$userid = 0;
$query = sprintf("SELECT id FROM users WHERE LOWER(email)='%s' AND passwordhash='%s'",strtolower($email),$pwdhash);
$resource = mysql_query($query);
if ($resource)
{
$row = mysql_fetch_row($resource);
if (isset($row[0]))
$userid = $row[0];
}
这是我的尝试:
$userid = 0;
$resource = $dbh->query("SELECT id FROM users WHERE LOWER(email)=':email' AND passwordhash=':hash'");
$resource->bindValue(':email',$email,PDO::PARAM_STR);
$resource->bindValue(':hash',$pwdhash,PDO::PARAM_STR);
if ($resource->execute())
{
$result = array();
while ($row = $resource->fetch()) {
array_push($result, $row);
}
if (isset($result[0]))
$userid = $result[0];
$dbh = null;
return $result;
}
我很确定 if 语句中的部分有问题
还有其他尝试:
$userid = 0;
$resource = $dbh->query("SELECT id FROM users WHERE LOWER(email)=':email' AND passwordhash=':hash'");
$resource->bindValue(':email',$email,PDO::PARAM_STR);
$resource->bindValue(':hash',$pwdhash,PDO::PARAM_STR);
if ($resource)
{
$row = $resource->fetchAll();
if (isset($row[0]))
$userid = $row[0];
}
// close database and return
$dbh = null;
return $userid;
}
还有一些尝试......
【问题讨论】:
-
$dbh->prepare 而不是 $dbh->我认为的查询。
-
将
query替换为prepare并删除:email和:hash周围的单引号
标签: php mysql pdo database-administration