这段代码,不知道为什么会报则个错啊,帮我看看
[code=PHP][
while ($row = mysql_fetch_array($result)){
$prod_id = $row[0];
$prod_desc = $row[1];
$prod_desc = preg_replace("/PRODUCT *ID *:* *(\w{6})/", "PRODUCT ID: <strong>$1</strong>", $prod_desc);

$sql2 = "update products_description set products_description.products_description = ? where products_id = ?";
$update = $db_up->prepare($sql2);
$update->bind_param("s", $prod_desc);
$update->bind_param("i", $prod_id);
$update->execute();
echo $update->error;
echo $update->affected_rows ."<br />";
$update->close();

echo $prod_id . $prod_desc;
}
/code]
execute()后报错 2031 No data supplied for parameters in prepared statement

解决方案 »

  1.   

    把你最终执行的那个sql语句打印出来一看就知道了
      

  2.   

    $sql2 = "update products_description set products_description.products_description = ".mysql_escape_string($prod_des)." where products_id = $prod_id";
    $update = $db_up->prepare($sql2);
    $update->execute();你先这样执行以下看行不
      

  3.   

    这样看看$update->bind_param("si", $prod_desc,$prod_id);
      

  4.   

    多谢ihefe,问题解决了,确实要写在一起,分两次调用就会报错