我在許多網站上搜索了一個答案,但它似乎沒有人遇到與我一樣的問題我現在有,我遇到過的。SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤[Php PDO]
的問題是,我收到此錯誤信息:
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '), NULL)' at line 2
我的代碼的開頭是這樣的。我一直在盯着它,但我似乎沒有找到問題,有什麼幫助?
<?php
$dbhost="host"; <-- this is line 2.
$dbname="db";
$dbusername="user";
$dbpassword="pass";
ini_set("error_reporting", E_ALL);
if(isset($_POST) && !empty($_POST["namn"])) {
try {
$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $link->prepare("INSERT INTO `eventcustomers` (`namn`,`enamn`,`datum`,`personnr`,`kon`,`telefon`,`epost`,`allergier`,`kategori`,`brodtext`,`reseto`,`eid`)
VALUES(:namn, :enamn, NOW(), :personnr, :kon, :telefon, :epost, :allergier, :kategori, :brodtext, time(), :eid)");
$stmt->bindParam(':namn', $_POST["namn"]);
$stmt->bindParam(':enamn', $_POST["enamn"]);
$stmt->bindParam(':personnr', $_POST["personnr"]);
$stmt->bindParam(':kon', $_POST["kon"]);
$stmt->bindParam(':telefon', $_POST["telefon"]);
$stmt->bindParam(':epost', $_POST["epost"]);
$stmt->bindParam(':allergier', $_POST["allergier"]);
$stmt->bindParam(':kategori', $_POST["kategori"]);
$stmt->bindParam(':brodtext', $_POST["brodtext"]);
$stmt->bindParam(':eid', $_POST["eid"]);
$stmt->execute();
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
}
$link = null;
?>
我試過了沒有(`)的用法,但是消息是一樣的。
也許錯誤是在數據庫表中? – Mario
如果答案解決了您的問題,請考慮接受答案。以下是http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work然後返回到此處,並使用勾號/複選標記執行相同操作,直至變爲綠色。這告知社區,找到了解決方案。否則,其他人可能會認爲這個問題仍然存在,並且可能需要發佈(更多)答案。您將獲得積分,其他人將被鼓勵幫助您。 *歡迎來到Stack!* –
嗨,我試圖實施更改,但沒有任何工作..所以它仍然開放:D – Dentalbudet