• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql_query($sql)到底返回boolen值还是resource id?该怎么解决

php 搞代码 3年前 (2022-01-23) 10次浏览 已收录 0个评论

mysql_query($sql)到底返回boolen值还是resource id???

PHP code

<!---ecms Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php$sql = "SELECT * FROM UserInfo WHERE id=222";$sql2 = "SELECT TOP 1 * FROM UserInfo WHERE id=222";mysql_connect("localhost", "root", "");mysql_select_db("MYDB");$result = mysql_query($sql);if (!$result){echo( "the user not exist" .mysql_query($sql));}else{echo( "ok ,the user exist".mysql_query($sql) );} ?>

如果用sql,输出为ok ,the user existResource id #4
如果用sql2, 输出为the user not exist

声明一下,id = 222 的数据在数据库中是不存在的,为什么会有这样的结果?
用sql查询,返回的是资源ID,用sql2查询,返回的是布尔值,为什么?

——解决方案——————–
查询成功就返回资源id,这与结果有多少没有关系
获取查询结果的行数用 mysql_num_rows
——解决方案——————–
$result=mysql_query($sql);

if (!$mysql_num_rows($result)){
echo( “the user not exist” );
}else{
echo( “ok ,login sucsuss);
}
——解决方案——————–

PHP code

mysql_query ― 发送一条 MySQL 查询说明resource mysql_query ( string $query [, resource $link_identifier ] )mysql_query() 向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。如果没有指定 link_identifier,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。Note:查询字符串不应以分号结束。mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。以下查询语法上有错,因此 mysql_query() 失败并返回 FALSE:Example #1 mysql_query() 例子以下查询当 my_col 并不是表 my_tbl 中的列时语义上有错,因此 mysql_query() 失败并返回 FALSE:Example #2 mysql_query()<?php$result = mysql_query("SELECT my_col FROM my_tbl")    or die("Invalid query: " . mysql_error());?>如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 FALSE。假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行,或者调用 mysql_affected_rows() 来查看对应于 ~来1源gaodai#ma#com搞*代#码1网搞代gaodaima码DELETE,INSERT,REPLACE 或 UPDATE 语句影响到了多少行。仅对 SELECT,SHOW,DESCRIBE 或 EXPLAIN 语句 mysql_query() 才会返回一个新的结果标识符,可以将其传递给 mysql_fetch_array() 和其它处理结果表的函数。处理完结果集后可以通过调用 mysql_free_result() 来释放与之关联的资源,尽管脚本执行完毕后会自动释放内存。参见 mysql_num_rows(),mysql_affected_rows(),mysql_unbuffered_query(),mysql_free_result(),mysql_fetch_array(),mysql_fetch_row(),mysql_fetch_assoc(),mysql_result(),mysql_select_db() 和 mysql_connect()。 


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql_query($sql)到底返回boolen值还是resource id?该怎么解决
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址