php - 如何在不使用 INSERT IGNORE 的情况下检查 mysql 中是否存在行?

标签 php mysql insert

我目前使用此查询从我的 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/

相关文章:

php - 插入到 mySQL 中会插入重复项吗? - 重复 double 参赛

php - strtotime() 的结果是否根据时区而改变?

python - 使用python从mysql中获取时间

java - 我的搜索方法出现所有空值

mysql - 如何在 mySQL 中使用 SELECT 将不可转换的字符删除为 ascii

java - 在 Oracle 数据库上持久化具有非自动增量 id 的实体时抛出 DataRetrievalFailureException

mysql_query 插入到表中

php - msql选择创建的计数数组

php - 当用户使用 id 搜索然后显示表中的整行时

php - Parse 的 REST API 和 PHP Curl 请求 - 如何