相关疑难解决方法(0)

如何在MySQL中"插入,如果不存在"?

我开始使用谷歌搜索,发现这篇文章讨论了互斥表.

我有一张约有1400万条记录的表格.如果我想以相同的格式添加更多数据,有没有办法确保我想要插入的记录不存在而不使用一对查询(即,一个查询要检查,一个要插入是结果集是空)?

unique对某个字段的约束是否保证insert如果它已经存在则会失败?

似乎只有一个约束,当我通过php发出插入时,脚本呱呱叫.

php mysql sql performance primary-key

781
推荐指数
9
解决办法
66万
查看次数

PHP - 在插入之前检查行是否存在

$DBH = new PDO($dsn, $username, $password, $opt);

$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$DBH->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$STH = $DBH->prepare("INSERT INTO requests (id,imdbid,msg) VALUES ('',:imdbid,:msg)");
$STH->bindParam(':imdbid', $_POST['imdbid']);
$STH->bindParam(':msg', $_POST['msg']);

$STH->execute();
echo "<p>Successfully Requested ".$_POST['imdbid']."! Thanks!</p>";
Run Code Online (Sandbox Code Playgroud)

是否有一些SQL查询将检查和插入或什么?我需要它来检查用户输入的内容是否已经存在于数据库中,因此如果用户键入已经存在的imdbid,那么它将不会继续插入任何内容.我该怎么做?我知道我可以做一个fetch_all并为它做一个foreach但是只有在你执行之后才能工作吗?

php mysql pdo

3
推荐指数
1
解决办法
2060
查看次数

标签 统计

mysql ×2

php ×2

pdo ×1

performance ×1

primary-key ×1

sql ×1