如果行存在则不插入
Doesn't insert if row exists
我使用 this and this 示例对数据库进行了插入操作,但我收到一条错误消息:调用非对象上的成员函数 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 ('paekov@gmail.com')"
}
看起来您的查询需要一些修改。
$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));
我使用 this and this 示例对数据库进行了插入操作,但我收到一条错误消息:调用非对象上的成员函数 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 ('paekov@gmail.com')"
}
看起来您的查询需要一些修改。
$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));