PHP PDO在函数内执行语句?

时间:2017-02-24 13:26:51

标签: php pdo insert

我有一个创建cookie的函数,并相应地使用cookie数据更新数据库,但我似乎无法从函数中更新数据库。 is currently unable to handle this request.

您可以理所当然地认为正确的数据被输入到函数中,包括$ db。一旦我注释掉准备并执行插入到$ db的两个$stmt行,我就可以加载页面。

$ db存在于调用函数之前我需要的文件调用db.php中。我在其他页面查询中测试了$db,它似乎没有问题。

function updatecookieDB($db, $email)
{
    $Selector = md5($email);
    $token = bin2hex(random_bytes(20));
    $salt = bin2hex(random_bytes(20));
    $cookiedata = $Selector.$token;
    $Hash = md5($token.$salt);
    setcookie('RememberMe',$cookiedata,time()+(3600*24*15),"/")
    $query = " INSERT INTO RememberMe(email,Selector,Hash,Salt) VALUES (:email,:Selector,:Hash,:Salt) ";
    $query_params = array ( ':email' => $email ,':Selector' => $Selector , ':Hash' => $Hash, ':Salt' => $salt );

    try
    {
    $stmt = $db->prepare($query); 
    $stmt->execute($query_params);
    {
    catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); }


}

可能是因为我没有退货吗?

1 个答案:

答案 0 :(得分:-2)

我将其更改为以下内容并且工作正常:

    $stmt = $db->prepare($query)->execute($query_params);