2015-02-08 141 views
1

我使用thisthis示例對數據庫執行插入操作,但我收到了一條錯誤消息:調用非成員函數execute()。 如果我做INSERT INTO participants(email) VALUES ('$email')什麼是好的。我的錯誤在哪裏?如果存在行,則不插入

$pdo = new PDO('sqlite:participants.db'); 
$insert = $pdo->prepare("INSERT INTO participants(email) SELECT $email WHERE NOT EXISTS(SELECT 1 FROM participants WHERE email = $email);"); 
$insert->execute(); 

UPD:

這是var_dump($insert)給出:

object(PDOStatement)#2 (1) { 
    ["queryString"]=> 
    string(65) "INSERT INTO participants (email) VALUES ('[email protected]')" 
} 
+0

你可以使用SQLite功能'INSERT或忽略INTO(電子郵件)VALUES( '$電子郵件')的參與者;' – sectus 2015-02-08 10:19:51

+0

你可以發佈什麼'的var_dump($插入)'給? – 2015-02-08 10:22:18

+0

可能重複[參考 - 在PHP中這個錯誤的意思是什麼?](http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – sectus 2015-02-08 10:22:21

回答

1

看起來你的查詢需要做一些修改。

$pdo = new PDO('sqlite:participants.db'); 
$insert = $pdo->prepare("INSERT INTO participants(email) SELECT :email WHERE NOT EXISTS(SELECT 1 FROM participants WHERE email = :email)"); 
$insert->execute(array(':email' => $email)); 
+0

非常感謝! – rel1x 2015-02-08 21:09:16

相關問題