PHP Проверка строки в предложении WHERE с подготовленными операторами - PullRequest
1 голос
/ 09 мая 2011

Я пытаюсь вставить метку времени для пользователя с подготовленными утверждениями. Однако idHash - это строка, и она никогда не вставляет строку в правильную строку. Когда idHash пуст в таблице, эти строки затрагиваются. Как я могу сказать PHP, что хочу, чтобы это воспринималось как строка ??

function setLastRefresh($idHash)
{
    global $dbUser;
    global $dbPass;

    // check if the user is in any of the other tables or if sb is trying to hack the db

    $db = new PDO('mysql:host=localhost;dbname=myDB', $dbUser, $dbPass);
    $preparedStatement = $db->prepare("update users set lastRefresh = NOW() WHERE idHash=:idHash");
    $preparedStatement->execute(array(':idHash' => $idHash));
    $preparedStatement->closeCursor();
    return 0;
}

1 Ответ

0 голосов
/ 09 мая 2011

Вы можете указать тип данных при привязке параметра. Вы хотите использовать тип PDO::PARAM_STR.

См. http://www.php.net/manual/en/pdostatement.bindparam.php для примера. Вам придется немного изменить способ указания параметров и выполнения.

...