2012-08-23 37 views
3

我有這個代碼的和平應該插入一條記錄到一個MySQL數據庫:PHP PDO插入不工作,沒有錯誤

$sql = "INSERT INTO connections (column1, column2, column3, column4, column5, column6, column7) VALUES (?, ?, ?, ?, ?, ?, ?)')"; 
$stmt = $pdo->prepare($sql); 
if (!$stmt) { 
    echo "\nPDO::errorInfo():\n"; 
    print_r($pdo->errorInfo()); 
} 
$stmt->execute(array('wer','wer','wer','2','wer','wer','wer')); 

我沒有得到任何錯誤和記錄不會在顯示錶。可能會出現什麼問題?

UPDATE:

這是一個完整的工作代碼感謝下面的答案:

$sql = "INSERT INTO connections (column1, column2, column3, column4, column5, column6, column7) VALUES (?, ?, ?, ?, ?, ?, ?)"; 
$stmt = $pdo->prepare($sql); 
if (!$stmt) { 
    echo "\nPDO::errorInfo():\n"; 
    print_r($pdo->errorInfo()); 
} 
$stmt->execute(array('wer','wer','wer','2','wer','wer','wer')); 
+1

哪裏**錯誤檢查**用於插入? (只有'prepare'的結果被檢查;因爲它是一個「僞準備語句」,與其他語言/數據庫綁定中的預備語句不同,它不一定驗證查詢形狀/語法。) – 2012-08-23 21:29:54

+3

在PDO :: ERRMODE_EXCEPTION?釘這些東西真的很有幫助。比通過SO人工調試器進行調試要容易得多。 http://www.php.net/manual/en/pdo.error-handling.php –

回答

5

有一個在SQL命令的末尾有語法錯誤。刪除多餘的')。它應該是:

$sql = "INSERT INTO connections (column1, column2, column3, column4, column5, column6, column7) 
     VALUES (?, ?, ?, ?, ?, ?, ?)"; 

而不是

$sql = "INSERT INTO connections (column1, column2, column3, column4, column5, column6, column7) 
     VALUES (?, ?, ?, ?, ?, ?, ?)')"; 
            ^^--- error here 
+0

謝謝!它現在正在工作! – BastiaanWW

+4

我已經指出錯誤在哪裏。請不要只在前後粘貼,不要指出錯誤的位置,特別是不要在OP文本中滾動時不可見的東西。 –