2013-02-12 331 views
2

我不知道什麼是錯誤的..我見過很多不同的方式來做到這一點,有人可以告訴我這是什麼地方是錯誤的..它拋出這個錯誤「錯誤:SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法有錯誤;請查看與您的MySQL服務器版本對應的手冊,以在'desc'附近使用正確的語法VALUES('30 .59','blue襯衫','一件非常酷的藍色襯衫')'在第1行「。我已經嘗試過多種方式和同樣的結果..mysql PDO多參數插入語句

<?php 
$title = 'blue shirt'; 
$desc = 'a really cool blue shirt'; 
$price = 30.59; 

$user = 'foo'; 
$pass = 'Bar'; 

try{ 
$conn = new PDO('mysql:host=examplehost;dbname=exampledb_name',$user,$pass); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
if(!$conn){ 
    echo"couldnt connect to db"; 
}else { 
    echo 'connected like a boss!!' . '<br>'; 
    $stmt = $conn->prepare("INSERT INTO 68_items (price, title, desc) VALUES (:price,:title,:desc)"); 
    if(!$stmt->execute(array(
      ':price' => $price, 
      ':title' => $title, 
      ':desc' => $desc)) 
    ) { 
     echo'statment failed'; 
    }else { 
     echo 'statment success, ' . $stmt->rowCount() . 'rows affected.'; 
    } 
} 
} catch (PDOException $e) { 
echo 'ERROR: ' . $e->getMessage(); 
} 
?> 
+0

我們可以問你同樣的問題。你的代碼有什麼問題?錯誤?沒有?沒有做到預期的事情? – Tchoupi 2013-02-12 20:37:48

+0

編輯上面 – 2013-02-12 20:40:34

回答

6

descreserved word in mysql所以你應該使用反引號進行轉義:

"INSERT INTO 68_items (price, title, `desc`) VALUES (:price,:title,:desc)" 
+3

+1我只是在你發佈你的答案時鍵入'反向':) – Tchoupi 2013-02-12 20:42:35

+1

這是瘋了......我想它是學習網頁設計的休息時間......謝謝你,我一直在這個約2小時.. – 2013-02-12 20:44:32