首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用PHP检查MySQL中是否存在行

如何使用PHP检查MySQL中是否存在行
EN

Stack Overflow用户
提问于 2011-06-14 22:03:58
回答 6查看 22K关注 0票数 4

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

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

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

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

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

我有三个问题,第一,我如何显示从数据库中提取的Id,第二,为什么这段代码找不到任何不在XML中的Id?

最后一个问题是,我是不是完全走错了路,有没有更好的方法!

代码语言:javascript
运行
复制
$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";
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-06-14 22:11:45

这是正确的检查方法:

代码语言:javascript
运行
复制
$sql_result = mysql_query("SELECT `id` FROM `list` WHERE `id` =  ".intval($id,10)." LIMIT 0,1");

if(is_resource($sql_result) && mysql_num_rows($sql_result) > 0 ){
    $sql_result = mysql_fetch_assoc($sql_result);
    echo $id . " Id exists " .  $sql_result["id"] . "\n";
}
else{
    echo "Id no longer exists" . $id . "\n";
}
票数 5
EN

Stack Overflow用户

发布于 2011-06-14 22:06:37

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

代码语言:javascript
运行
复制
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'];
}
票数 5
EN

Stack Overflow用户

发布于 2011-06-14 22:06:32

您应该使用mysql_num_rows()检查返回的行数。否则,您只是简单地检查查询是否执行没有任何错误。

代码语言:javascript
运行
复制
if($sql_result)

代码语言:javascript
运行
复制
if(mysql_num_rows($sql_result))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6344779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档