我无法使用存储过程进行更新

时间:2015-12-29 09:53:29

标签: php stored-procedures mysqli

我收到了严重的错误,这个错误很奇怪。它说错误更新记录:命令不同步;你现在不能运行这个命令。它发生在我添加的时候:$sql="Call getMedicine('$id')";

这是我的代码:

<?php
require("db.php");
$id=$_GET['id'];

$sql="Call getMedicine('$id')"; //strange error 
//Error updating record: Commands out of sync; you can't run this command now

$result = mysqli_query($conn, $sql);

$test = mysqli_fetch_array($result);
if (!$result) 
        {
            die("Error: Data not found..");
        }
        $product_name=$test['product_name'];
        $description= $test['description'];                 
        $date=$test['date'];
        $quantity=$test['quantity'];
        $price=$test['price'];

if(isset($_POST['save']))
{   
    $product_name_save=$_POST['product_name_txt'];
    $description_save=$_POST['description_txt'];
    $date_save=$_POST['date_txt'];
    $quantity_save=$_POST['quantity_txt'];
    $price_save=$_POST['price_txt'];

    $sql="Call editMedicine('$id', '$product_name_save', '$description_save', '$date_save', '$quantity_save', '$price_save')";

    if (mysqli_query($conn, $sql)) 
    {
        echo "Record updated successfully";
    } 
    else 
    {
        echo "Error updating record: " . mysqli_error($conn);
    }    

    header("Location: view_medicine.php");      
}
    mysqli_close($conn);
?>

1 个答案:

答案 0 :(得分:0)

如果您还没有使用旧查询的结果,则无法运行新查询。

在调用mysqli_free_result($result);存储过程之前,您应该在某个时候调用editMedicine