2017-08-11 230 views
-1

我正在使用PHP數據對象(PDO)的數據庫,我使用try-catch塊。我有下面的代碼在我的try塊SQLSTATE [42000]錯誤

$name=$email=$subject=$message=""; 
    if($_SERVER["REQUEST_METHOD"]=="POST"){ 
     $name = $_POST["name"]; 
     $email = $_POST["email"]; 
     $subject = $_POST["subject"]; 
     $message = $_POST["message"]; 
    } 
      $servername = "//I have some IP Here"; 
      $username = "//somuser"; 
      $password = "//somepassword"; 
      $dbname = "lifeimpu_userrequest"; 
      $conn = new PDO("mysql:host=$servername;dbname=$lifeimpu_userrequest", $username, $password); 
     // set the PDO error mode to exception 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "INSERT INTO ContactUs(name, email, subject, message) VALUES ($name, $email, $subject, $message);"; 
     $conn->exec(sql); 
     echo "Data Submitted Successfully"; 

我不知道爲什麼我總是得到

SQLSTATE [42000]:語法錯誤或訪問衝突:1064您有一個 錯誤你的SQL語法;檢查對應於您 MySQL服務器版本使用附近的「SQL」在1號線

這只是$ conn-> EXEC(SQL)執行後出現在正確的語法手冊;。執行直接跳到catch塊。

我試圖在phpMyAdmin中執行這些SQL,它工作正常。我不知道爲什麼它在代碼中不起作用。

+1

$名稱,$電子郵件,$主題,$消息是字符串,你需要'字符串符號 –

+0

已經添加''但仍然不起作用 – Wongsakorn

+0

嘗試'$ conn-> query($ sql);' –

回答

0

你需要寫你這樣的查詢,

$sql = "INSERT INTO `ContactUs` (`name`, `email`, `subject`, `message`) VALUES ('$name', '$email', '$subject', '$message')"; 

,你在

錯過 $

$conn->exec($sql);

+0

我認爲這應該有幫助 –

相關問題