将新记录插入MySql时SQL语法出错

时间:2016-03-09 10:22:31

标签: php mysql mysqli

使用此查询,我收到错误“您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在...附近使用正确的语法”

$sql = 'INSERT INTO articles (  long_text )
        VALUES ("' . mysqli_real_escape_string($conn, $long) . '")';

        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully" . "<br>" ;
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }

有谁知道导致问题的原因是什么?

1 个答案:

答案 0 :(得分:1)

您的查询中的引用问题。你想在单引号内写双引号。

您需要将查询更改为prepare statement

$stmt = $conn->prepare("INSERT INTO articles (`long_text`) VALUES (?)");
$stmt->bind_param('s', $long);
/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

阅读http://php.net/manual/en/mysqli-stmt.bind-param.php