我有这个mySQLi代码并且它给了我错误...一直盯着它看了一个小时我无法弄清楚为什么它的错误。求救!
解析错误:第24行的C:\ AppServ \ www \ myMovieDB \ UpdateMovie.php中的语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),期待标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)
$sql = "UPDATE movie SET `name` = "$_POST[title]", `release` = "$_POST[movie_release]", synopsis = "$_POST[synopsis]"
WHERE `name = '$_POST['movie_to_change']'";
答案 0 :(得分:3)
不要在查询中直接使用$_POST
,这可能会导致SQL注入。您必须使用mysqli_real_escape_string(mysqli $link , string $escapestr )来清理变量Like:
$title = mysqli_real_escape_string($connection_link ,$_POST['title']);
$movie_release = mysqli_real_escape_string($connection_link ,$_POST['movie_release']);
$synopsis = mysqli_real_escape_string($connection_link ,$_POST['synopsis']);
$movie_to_change = mysqli_real_escape_string($connection_link ,$_POST['movie_to_change']);
然后你的查询将是:
$sql = "UPDATE movie SET
`name` = '$title',
`release` = '$movie_release',
`synopsis` = '$synopsis'
WHERE
`name` = '$movie_to_change'";
您可以使用正确的连接运算符(。)句点直接在查询中使用$_POST
变量。但是,如果您像我一样将$_POST
变量与查询内部的直接访问分开,它将阻止您进行连接混淆。
答案 1 :(得分:0)
您缺少逗号
$sql = "UPDATE movie SET name = '".$_POST['title']."', release =
'".$_POST['movie_release']."', synopsis = '".$_POST['synopsis']."'
WHERE name = '".$_POST['movie_to_change'].'";
答案 2 :(得分:0)
您尚未创建正确的SQL字符串。请尝试使用以下字符串
$sql = "UPDATE movie SET `name` = ".$_POST['title'].", `release` = ".$_POST['movie_release'].", `synopsis` = ".$_POST['synopsis']."
WHERE `name` = ".$_POST['movie_to_change'];