使用存储过程更新数据库时出错

时间:2017-03-12 21:55:22

标签: php mysql database stored-procedures

这是我在下面的php代码

$token = md5(uniqid(rand(), true));
        $complete = 'No';
        $update_sql = "CALL updatetoken ('$db_email','$token','$complete')";
        echo $update_sql;
        // $update_sql = "UPDATE user SET resetToken = {$token}, resetCompleted='No' WHERE email = {$_POST['email']}";
        $sqlfile = mysqli_query($connection, $update_sql);

        if ($sqlfile) {
            echo "Update successful";

        } else {
            echo "Error updating the database";
        }

然后是存储过程

CREATE DEFINER=`root`@`localhost` PROCEDURE `updatetoken` (IN `usermail` VARCHAR(100), IN `token` VARCHAR(100), IN `completetask` VARCHAR(100))  UPDATE user SET resetToken = token, resetCompleted = completetask WHERE email = usermail$$

IMAGE FOR STORE PROCEDURE

而不是更新数据库,我不断收到错误消息“更新数据库时出错”,我尝试使用普通的“INSERT”mysql方法从我的PHP代码而不是CALL,但仍然是相同的错误消息

2 个答案:

答案 0 :(得分:0)

更新语句末尾缺少分号(;):

enter image description here

答案 1 :(得分:0)

token = md5(uniqid(rand(), true));
$complete = 'No';
$update_sql = "CALL updatetoken ('$db_email','$token','$complete')";
echo $update_sql; 

// $update_sql = "UPDATE user SET resetToken = {$token}, resetCompleted='No' WHERE email = {$_POST['email']}";
$sqlfile = mysqli_query($connection, $update_sql);
if ($sqlfile) { echo "Update successful"; } 
else { echo "Error updating the database";`