簡體   English   中英

找不到我的SQL語法錯誤

[英]Can't find my SQL syntax error

我一直在我的SQL語法中收到此錯誤,但找不到原因。 我的數據庫有一個名為“ match”的表,其中包含以下列:
hometeam-varchar(45)
客隊-瓦爾卡(45)
進球-詮釋(11)
進球-詮釋(11)
體育場-varchar(45)
datetime-datetime

這是我在php中的代碼

$query = "INSERT INTO match(hometeam, awayteam, homegoals, awaygoals, stadium, datetime) VALUES('$home', '$away', $homescore, $awayscore, '$arena', $datetime)";
if(!mysql_query($query)) 
    {
        echo mysql_error()."<br />";
    }

我嘗試打印查詢,它們對我來說看起來不錯:

INSERT INTO match(hometeam, awayteam, homegoals, awaygoals, stadium, datetime) VALUES('Everton', 'Newcastle', 2, 2, 'Goodison Park', 1347937200)

這是我從mysql_error()得到的錯誤:

您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在'match(hometeam,awayteam,homegoals,awaygoals,Stadium,datetime)VALUES('Evert'第1行附近使用

matchmysql的保留字 您需要將其括在反引號(`)中

嘗試

$query = "INSERT INTO `match` (hometeam, awayteam, homegoals, awaygoals, stadium, `datetime`)
VALUES('$home', '$away', $homescore, $awayscore, '$arena', $datetime)";

我只是在表名和日期時間列名的周圍添加了`,因為match是保留字。 我做了datetime,因為它也可能是保留字,但我不確定。

表名必須與下一個'('至少有一個空格,或用``

嘗試這個:

$query = "
 INSERT INTO `match` 
   (hometeam, awayteam, homegoals, awaygoals, stadium, datetime) 
 VALUES
   ('$home', '$away', $homescore, $awayscore, '$arena', $datetime)";

我認為match是MySQL中的保留字。

改變這個

$query = "INSERT INTO match(hometeam, awayteam, homegoals, awaygoals, stadium, datetime) VALUES('$home', '$away', $homescore, $awayscore, '$arena', $datetime)";

 $query =mysql_query("INSERT INTO `match`(hometeam,awayteam,homegoals,awaygoals,stadium,`datetime`)
VALUES('$home','$away','$homescore','$awayscore','$arena','$datetime')");

使用,mysql_query,對所有要插入的變量使用單引號,並避免使用空格。

暫無
暫無

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

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