MySQLi + PHP安全插入不适用于WHERE

时间:2015-02-15 18:35:45

标签: php mysql mysqli

这部分工作正常

    $stmt= $db->prepare("INSERT INTO books (title) VALUES (?)");
    $booktitle=$_POST['booktitle'];
    $stmt->bind_param('s', $booktitle);   // bind $sample to the parameter

// escape the POST data for added protection
$booktitle = isset($_POST['booktitle'])
          ? $db->real_escape_string($_POST['booktitle'])
          : '';


$stmt->execute();

此部分不起作用

$stmta= $db->prepare("INSERT INTO books (author) VALUES (?) WHERE title = '$booktitle' ");
$author=$_POST['author'];
$stmta->bind_param('s', $author);   // bind $sample to the parameter

// escape the POST data for added protection
$author = isset($_POST['author'])
          ? $db->real_escape_string($_POST['author'])
          : '';


$stmta->execute();

问题在于使用WHERE?我尝试使用没有WHERE的相同代码,并且它有效。怎么回事?

1 个答案:

答案 0 :(得分:1)

您需要更新行而不是插入新行。

UPDATE books SET author = ? WHERE title = '$booktitle'

此外,标题也应该绑定。