как конвертировать некоторые MySQL в pdo

Может кто-нибудь помочь мне преобразовать это в 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;
}

Было еще несколько попыток …

0

Решение

Попробуй это,

использование prepare скорее, чем queryрезультатом подготовки является дескриптор статистики, который можно использовать для привязки значений к именованным параметрам, которые вы использовали в подготовке.

$userid = 0;
$stmt = $dbh->prepare("SELECT id FROM users WHERE LOWER(email)=:email AND passwordhash=:hash");
$stmt->bindValue(':email',$email,PDO::PARAM_STR);
$stmt->bindValue(':hash',$pwdhash,PDO::PARAM_STR);
if ($stmt->execute())
{
$result = array();
while ($row = $stmt->fetch()) {
array_push($result, $row);
}

if (isset($result[0]))
$userid = $result[0];

$dbh = null;
return $result;
}
0

Другие решения

Других решений пока нет …