带变量的PHP和SQL INSERT INTO不起作用

时间:2015-03-30 15:32:41

标签: php sql sql-insert

有没有人知道这段代码有什么问题?

$sql = "INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) 
VALUES ('$id', '$frage', '$a1', '$a2', '$a3', '$a4', '$kat');";

表名称100%正确。变量看起来像这样:

$id = 2002

$kat = 2

$frage = 1+1=

$a1 = 2

$a2 = 3

$a3 = 4

$a4 = 5

以前我从csv文件创建了一个数组。变量填写正确,我仔细检查了它。

3 个答案:

答案 0 :(得分:0)

...噢

使用sprintf()

$sql = sprintf("INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) VALUES ('%d', '%s', '%s', '%s', '%s' , '%s', '%s')", $id,  $frage, $a1, $a2, $a3, $a4, $kat);

我建议您了解此功能以及数据清理。

""之间还有一个"{$variable1} and {$variable2}"符号,更加可靠,没有括号。

答案 1 :(得分:0)

您可能会在表格中插入$id。哪个MySQL返回错误,因为它必须是有效的整数。

你应该查看准备好的陈述。

$stmt = $conn->prepare("INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) VALUES (?, ?, ?, ?, ?, ?, ?)"); $stmt->bind_param($id, $frage, $a1, $a2, $a3, $a4, $kat);

或者你也可以这样结束,但这不是最好的做法。

$sql = "INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) VALUES (" . $id . ", " . $frage . ", " . $a1 . ", " . $a2 . ", " . $a3 . ", ". $a4 . ", " . $kat . ");";

答案 2 :(得分:0)

请查看我的代码

之后,如果您遇到任何问题,请按照说明链接

1。php_mysql

2。mysql_query()

<?php
$sub = 101;
$mark = 85+5;

$host = 'localhost';
$db_user = 'root';
$db_password = '';
$db = 'quiz';

$con = mysql_connect($host,$db_user,$db_password);

if($con){
    if(!mysql_select_db($db)){
        echo "Database not found <br/>";
        die;
    }
}else{
    echo "DB Connect failed";
    die;
}

$sql = "INSERT INTO fr_fragen (sub, mark) VALUES ('$sub','$mark')";

echo $sql . '<br/>';

if(mysql_query($sql)){
    echo "Data insert successfully";
}else{
    echo "Error: " . mysql_error();
}

?>