php - 如何使用PHP检查MySQL中是否存在一行

标签 php mysql

我正在尝试读取 XML 文件并将其与现有数据库中的字段进行比较。

如果数据库中的ID在XML文件中不存在,则该Id对应的整行不再有效,将被删除。

为此,我在 while 语句中从头到尾阅读了 XML 的每一行。

作为第一步,我尝试做一个简单的比较,如果它在数据库中找到 XML 中不存在的 ID,则回显。

我知道数据库中有一些 Id 在 XML 中不存在,但是下面的代码没有显示它们。

我有三个问题,首先我如何显示从数据库中提取的 ID,其次为什么这段代码没有找到任何不在 XML 中的 ID?

最后一个问题是我是否以完全错误的方式进行此操作,是否有更好的方法来做到这一点!

$sql_result = mysql_query("SELECT id FROM `list` WHERE id =  $id") or die(mysql_error());

if($sql_result)
{
// echo $id . " Id exists " .  $sql_result["id"] . "\n";
}
else
{
echo "Id no longer exists" . $id . "\n";
}

最佳答案

您的代码没有找到您期望的结果,因为即使可能找不到 id,$sql_result 仍然持有一个 TRUE 值,因为查询成功了。相反,检查是否 myqsl_num_rows() > 0

if($mysql_num_rows($sql_result) > 0)
{
  // echo $id . " Id exists "\n";

  //Now, to print the id, you need to fetch it from `$sql_result`, 
  //which is just a resource at this point:
  $row = mysql_fetch_assoc($sql_result);
  echo $row['id'];
}

关于php - 如何使用PHP检查MySQL中是否存在一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344779/

相关文章:

php - 使用 find_in_set 从 1 行中选择包含值的列

php - Laravel 5 : the move() function doesn't save the uploaded image file

php - 通过 Gmail 或什至 Google App Engine 发送大量电子邮件?

php - 将 SOAP XML 响应转换为 PHP 对象或数组

mysql - Node.js 服务器是否应该与 mysql 实例有一个连接?

php - WHERE 中使用多个 OR 术语的查询返回整个表

php - 如何在 PHP 中解析 JSON 对象?

PHP 不将日期时间插入 mysql 表

mysql - 从报告 mysql 查询中删除重复值

mysql - 为学校日记构建mysql数据库