2017-02-26 50 views
-2

我想弄清楚準備好的聲明是如何在PDO中工作的。我有以下文件:準備好的聲明PDO什麼都不做

<?php 


$user = "root"; 
$pass = "<removed for this post>"; 
$db = new PDO("mysql:host=localhost;dbname=pdo-demo", $user, $pass); 

$stmt = $db->prepare("INSERT INTO pdo-demo (firstname, lastname, email) value (:firstname, :lastname, :email)"); 

$stmt->bindParam(':firstname', $firstname); 
$stmt->bindParam(':lastname', $lastname); 
$stmt->bindParam(':email', $email); 

$firstname = "John"; 
$lastname = "Doe"; 
$email = "[email protected]"; 
$stmt->execute(); 

$db = null;?> 

當我進入頁面沒有任何反應,我缺少什麼?它不應該插入數據?

+1

'PDO-demo'這相當於'PDO負demo'。 –

+1

您缺少錯誤報告。參考鏈接的答案進行正確的設置,從PHP.PDO中獲取錯誤消息,這會給你一個線索。 –

+0

這個問題在錯誤的重複中沒有解決真正的問題。簡單地獲取錯誤不會告知該人員應該使用什麼。通過你的頭YCS。 –

回答

0

原來我需要反引號(`)爲像這樣的變量名:

$stmt = $db->prepare("INSERT INTO `pdo-demo` (`firstname`, `lastname`, `email`) value (:firstname, :lastname, :email)"); 

現在,它的工作

0

pdo-demo轉換爲pdo減去演示並將您的名稱用於數據庫和表。

+0

我的db和table都被稱爲pdo-demo – crystyxn

+1

[*「pdo-demo轉換爲pdo減去demo」*](http:// stackoverflow。 com/questions/42469803/prepared-statement-pdo-does-nothing?noredirect = 1#comment72080427_42469803) - 如果你打算根據評論張貼答案,你應該引用那個寫評論的人,主要是*「moi」*。 –

+0

我的不好,不會再發生 –