PHP mysqli INSERT什么都不做

时间:2016-01-15 14:28:32

标签: php mysql mysqli sql-insert

我查看了十几个问题而没有任何帮助。有些人给出了相互矛盾的建议。

我有一个简单的INSERT INTO查询与PHP mysqli。查询和连接都正常,查询实际上在较旧版本的xampp上执行。但是当我换到新的 - 没什么!没有错误,但也没有新数据。

<?php 

    $connection = mysqli_connect("localhost", "standard_user", "standard", "liquidity");
    if (!$connection) {
        die("Error: ".mysqli_connect_errno());
    }
    $table = "clan";
    $username = "someusername";
    $ime = "My name";

    $query = "INSERT INTO ";
    $query.=$table;
    $query.=" (username, ime) ";
    $query.="VALUES ('".$username."','".$ime."');";

    //$query = "INSERT INTO clan (username, ime) VALUES ('someusername', 'My name')";

    mysqli_query($connection, $query);

    if ($query) {
        echo("Success: ".$ime);
    } else {
        echo("There has been an error. Try again.");
    }
    mysqli_close($connection);

?>

这是我在尝试时回复的查询:INSERT INTO clan (username, ime) VALUES ('someusername','My name');

因为每次重新加载它都会打印出#34;成功:我的名字&#34;,我想它会以某种方式执行。但是,没有保存数据。我无法弄明白。有什么帮助吗?

[ SOLUTION ] clan表有一个外键(username)到另一个没有条目的表,所以查询没有错,但是实际上很傻。感谢Deivison Francisco的回答,只需阅读错误就可以轻松确定问题的原因。

2 个答案:

答案 0 :(得分:2)

请使用mysqli_query()的返回值来确定结果 还要考虑使用预准备语句来缓解SQL注入。

$result = mysqli_query($connection, $query);

if ($result) {
    echo("Success: ".$ime);
} else {
    echo("There has been an error. Try again. Error message: ".mysqli_error($connection));
}

答案 1 :(得分:2)

改变:

$query = "INSERT INTO clan (username, ime) VALUES ('someusername', 'My name')";
$return = mysqli_query($connection, $query);

if ($return) {
    echo("Success: ".$ime);
} else {
    echo("There has been an error. Try again.");
}
mysqli_close($connection);