簡體   English   中英

SQL 錯誤:插入查詢產生錯誤(列名用引號括起來)

[英]SQL Error: Insert Query producing error (Column names surrounded with quotes)

在我的 sql 代碼中一個非常簡單的插入命令,最初是用 node js 制作的,為了簡單起見,我將它移到了 php。 然后我將所有變量更改為硬編碼值。 這是代碼和結果:

代碼:

<?php
$db = mysqli_connect("localhost", "****", "****", "****"); // assume this works
if (mysqli_connect_errno()) {
    echo mysqli_connect_error();
}
$query = "INSERT INTO `users` ('username', 'email', 'profilePic') VALUES ('awd', 'awd@awd.awd', '".mysqli_real_escape_string($db, "http://localhost:3000/public/files/avatar/2ede50c0-d4b9-11e8-9635-617abdd05393.png")."')";
echo $query."<br>";
if (!mysqli_query($db, $query)) {
    echo mysqli_error($db);
}

?>

結果:

INSERT INTO `users` ('username', 'email', 'profilePic') VALUES ('awd', 'awd@awd.awd', 'http://localhost:3000/public/files/avatar/2ede50c0-d4b9-11e8-9635-617abdd05393.png')
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 ''username', 'email', 'profilePic') VALUES ('awd', 'awd@awd.awd', 'http://localho' at line 1

為什么在我使用mysqli_real_escape_string()后會拋出錯誤? 在 node js 中,我也嘗試使用db.escape() ,但也失敗了。 如何修復錯誤? Php 或 Node Js 答案都被接受,先謝謝你。

解決方案:

列名周圍不應有任何內容,要使 sql 查詢工作,只需刪除列名周圍的單引號即可。

簡單地說,我認為您需要用反引號將列名括起來。

$query = "INSERT INTO `users` (`username`, `email`, `profilePic`)
VALUES ('awd',
        'awd@awd.awd',
        '".mysqli_real_escape_string($db, 
         "http://localhost:3000/public/files/avatar/2ede50c0-d4b9-11e8-9635-617abdd05393.png")."')";

替換這個:

$query = "INSERT INTO `users` ('username', 'email', 'profilePic') VALUES ('awd', 'awd@awd.awd', '".mysqli_real_escape_string($db, "http://localhost:3000/public/files/avatar/2ede50c0-d4b9-11e8-9635-617abdd05393.png")."')";

有了這個:

$query = "INSERT INTO `users` (username, email, profilePic) VALUES ('awd', 'awd@awd.awd', '".mysqli_real_escape_string($db, "http://localhost:3000/public/files/avatar/2ede50c0-d4b9-11e8-9635-617abdd05393.png")."')";

列名周圍沒有任何東西,這是一個非常簡單的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM