我目前使用此查询从我的 php 应用程序更新数据库中的列表:
$query = "INSERT INTO listings (title, description) VALUES ('$title','$description')";
此列表有一个“postid”列,因为它是自动递增的主键。
我不想执行 INSERT IGNORE 并让它检查 postid。相反,我想保持表结构相同并检查 $title 是否存在......如果存在则不插入。
php/mysql 是否允许我以某种方式运行:
If ($title does not exist) {
$query = "INSERT INTO listings (title, description) VALUES ('$title','$description')";
}
如果是这样,我该怎么写?
最佳答案
您可以这样做:
查询数据库以查看是否已有任何具有给定标题的列表,如果计数查询返回 0,则执行插入语句:
$result = mysql_query('SELECT count(*) as total from listings where title="$title"');
$result = mysql_fetch_array($result);
if($result['total'] == 0){
$query = mysql_query("INSERT INTO listings (title, description) VALUES ('$title','$description')");
}
但我强烈建议您不要以这种方式操作数据库。最好使用 ORM 或数据库类,而不是将 SQL 语句放在各处。
祝你好运。
关于php - 如何在不使用 INSERT IGNORE 的情况下检查 mysql 中是否存在行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563597/