插入表错误

时间:2014-07-30 21:59:59

标签: php mysql insert-into

这是我的代码

<?php
require '../connect/conn.php';
$quest = $_POST['domanda'];
$a1 = $_POST['risposta1'];
$a2 = $_POST['risposta2'];
$a3 = $_POST['risposta3'];
$a4 = $_POST['risposta4'];
$ins = "INSERT INTO melaraider SET domanda = '$quest',riposta1 = '$a1',riposta2 = '$a2',riposta3 = '$a3',riposta4 = '$a4'";
$result = mysqli_query($con, $ins);


if(!$result){
    die("query error $ins:" . mysql_error());
}
mysql_close(); 

echo "all done!";
?>

每次执行该代码时都会出现查询错误:

query error INSERT INTO melaraider SET domanda = 'quanto fa 2 +2?',riposta1 = '4',riposta2 = '6',riposta3 = '9',riposta4 = '2':

我真的不明白我的错误是什么...... 有人可以帮帮我吗? 它是一个本地测试,因此我无法显示实时版本。

6 个答案:

答案 0 :(得分:0)

试试这段代码:

<?php
require '../connect/conn.php';
$quest = $_POST['domanda'];
$a1 = $_POST['risposta1'];
$a2 = $_POST['risposta2'];
$a3 = $_POST['risposta3'];
$a4 = $_POST['risposta4'];
$ins = "INSERT INTO melaraider (domanda, riposta1, riposta2, riposta3, riposta4) VALUES('" . $quest . "','" . $a1 . "','" . $a2 . "','" . $a3 . "','" . $a4 . "')";
$result = mysqli_query($con, $ins);


if(!$result){
    die("query error $ins:" . mysql_error());
}
mysql_close(); 

echo "all done!";
?>

答案 1 :(得分:0)

我相信你的语法有点偏差。如果使用所有字段,只需指定数据:

$ins = "INSERT INTO melaraider VALUES ('$quest','$a1',$a2','$a3','$a4')";

或指定字段然后指定数据

$ins = "INSERT INTO melaraider (domanda,riposta1,riposta2,riposta3,riposta4) 
VALUES ('$quest','$a1',$a2','$a3','$a4')";

http://www.w3schools.com/php/php_mysql_insert.asp

编辑:不够快!

答案 2 :(得分:0)

您正在使用INSERT + UPDATE代码的组合,您可以看到here完整的插入选项。 在你的情况下你应该使用

$ins = "INSERT INTO melaraider('domanda', 'riposta1', 'riposta2', 'riposta3', 'riposta4') VALUES('$quest','$a1','$a2','$a3','$a4');";

干杯!

答案 3 :(得分:0)

您使用了错误的INSERT查询语法。

以下是文档: http://dev.mysql.com/doc/refman/5.6/en/insert.html

您的查询应如下所示: INSERT INTO melaraider (domanda, riposta1, riposta2, riposta3, riposta4) VALUES ('$quest', '$a1', '$a2', '$a3', '$a4');

然而,在您继续使用此代码之前,您需要仔细检查您的输入。您永远不应该直接将POST数据放入查询中。请参阅:What's the best method for sanitizing user input with PHP?

答案 4 :(得分:0)

should use Mysqli而不是Mysql,你把它们混合起来 您的插入查询语法也是错误的。

<?php
require '../connect/conn.php';
$quest = $_POST['domanda'];
$a1 = $_POST['risposta1'];
$a2 = $_POST['risposta2'];
$a3 = $_POST['risposta3'];
$a4 = $_POST['risposta4'];
$ins = "INSERT INTO melaraider (domanda, riposta1, riposta2, riposta3, riposta4) 
VALUES ('$quest', '$a1', $a2', '$a3', '$a4')";
$result = mysqli_query($con, $ins);


if(!$result){
    echo "query error $ins:" . mysqli_error($con); //Changed from mysql_error(). Changed from die() to echo, because you always should do mysqli_close()
} else {
    echo "all done!";
}
mysqli_close($con); //changed from mysql_close()

?>

就像@patsweet所说,你应该考虑在执行查询之前清理数据。

答案 5 :(得分:0)

更改

$ins = "INSERT INTO melaraider SET domanda = '$quest',riposta1 = '$a1',riposta2 = '$a2',riposta3 = '$a3',riposta4 = '$a4'";  

到此:

$ins = "INSERT INTO melaraider(domanda, riposta1, riposta2, riposta3, riposta4) VALUES('$quest','$a1', '$a2', '$a3', '$a4')";  

注意:在更新数据库中的值时,只能使用SET。

例如:

$ins = "UPDATE melaraider SET domanda = '$quest' WHERE mel_id = some_id";