这是错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 7
这是页面
switch($_GET['action']) {
case 'add':
switch($_GET['type']) {
case 'movie':
$query = 'INSERT INTO
movie
(movie_name, movie_year, movie_type)
VALUES
("' . $_POST['movie_name'] . '",
' . $_POST['movie_year'] . ',
' . $_POST['movie_type'] . ')';
break;
}
break;
}
if (isset($query)) {
$result = mysql_query($query, $db) or die(mysql_error($db));
}
我认为问题可能就在这里
<td><select name='movie_type'>
<?php
$query = 'SELECT movietype_label FROM movietype ORDER BY movietype_id';
$result = mysql_query($query, $db) or die (mysql_error($db));
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $value) {
echo '<option value="' . $row['movietype_id'] . '">';
echo $row['movietype_label'] . '</option>';
}
}
?>
</select></td>
,这是
上的print_rArray(
[movie_name] => asd
[movie_type] =>
[movie_year] => 2015
[submit] => ADD)
答案 0 :(得分:2)
您不应该使用双引号"
而不是单引号'
,如下所示。你混合单引号和双引号。
$query = "INSERT INTO
movie
(movie_name, movie_year, movie_type)
VALUES
('" . $_POST['movie_name'] . "',
'" . $_POST['movie_year'] . "',
'" . $_POST['movie_type'] . "')";
答案 1 :(得分:1)
当然这很难看,但如果它失败会很惊讶。
$query = "INSERT INTO
movie (movie_name, movie_year, movie_type)
VALUES
('"
. $_POST['movie_name'] . "','"
. $_POST['movie_year'] . "','"
. $_POST['movie_type'] . "')";
此外,您需要清理数据。数据直接来自用户,无需清理,或通过适当的代码分离发送,可以,并且有一天会包含sql注入。
像上面那样丑陋的代码开始在mysqli和pdo上展现出一些美感,加上参数安全地分开,所有关于注射的呻吟都消失了。