PHP中的mysql_query()函数的返回值是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中的mysql_query()函数的返回值是啥?相关的知识,希望对你有一定的参考价值。
$insert=mysql_query($sql,$conn);
if ($insert)
echo("<script type='text/javascript'> alert('写入成功!');location.href='index.php';</script>");
else
echo("<script type='text/javascript'> alert('写入失败!');location.href='insert.php';</script>");
问题:
$insert=mysql_query($sql,$conn)返回的是一个结果集,同时其返回值又能被if判断,又是布尔类型的变量?那结果集和布尔型变量有什么关系?我看到百度上还有人说是指针变量...到底是什么?怎么能干这么多事...
mysql_query 对于 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,打印出来是 类似于 “Resource id #3" 的一个字符串,所以就为真了。
这个 “Resource id #3" 就好比是一个指示牌, 连接着你要操作的数据,用函数操作他时,例如:mysql_fetch_array($insert), 他就把从数据库调出来的结果带到函数里做参数了。 参考技术A 对SELECT, SHOW, DESCRIBE, EXPLAIN 等语句,如果成功,返回类型为resource的值,如果失败,返回布尔型的FALSE
对UPDATE, DELETE, DROP,INSERT等语句,成功返回TRUE,失败返回FALSE 参考技术B 多看手册
mysql_query一般是用过来给MYSQL递交一个SQL语句去执行的
仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。 参考技术C mysql_select_db() 函数设置活动的 MySQL 数据库。
如果成功,则该函数返回 true。如果失败,则返回 false。 参考技术D 根据SQL语句类型,如果是SELECT语句那么返回是结果集(result类型),如果是INSERT,UPDATE这些类型则返回是布尔值(BOOL值),可以参考下手册。
mysql_query 总是用 SELECT EXISTS 返回 false
【中文标题】mysql_query 总是用 SELECT EXISTS 返回 false【英文标题】:mysql_query always returns false with SELECT EXISTS 【发布时间】:2012-09-26 16:37:14 【问题描述】:我正在尝试使用 EXISTS 语法检查行是否存在。 connect() 函数正在工作(至少在所有其他函数中),但 this 函数总是返回 false。当通过 phpMyAdmin 尝试时,查询给了我真或假。所以我的问题;如何用php阅读答案?我不想使用普通的 SELECT 语句,因为我读过一些基准测试,女巫说这种方法更快。
function isOnline($userid)
$conn = connect();
$query = "SELECT EXISTS (SELECT 1 FROM `usersonline` WHERE userid=$userid);";
return mysql_query($query, $conn) ? false : true;
【问题讨论】:
【参考方案1】:mysql_query
函数仅指示查询是否成功执行。您需要读取返回的数据的第一行,可能使用mysql_fetch_row
并确定它给您的是真还是假。
另外请理解 mysql_* 函数现已弃用,您应该继续使用更新的 PDO 或 mysqli_* 函数
【讨论】:
【参考方案2】:你的函数总是返回false
,因为你的查询总是成功的。
您需要从查询的结果集中获取结果并对其进行测试。
【讨论】:
【参考方案3】:function isOnline($userid)
$conn = connect();
$query = mysql_query("SELECT `id` FROM `usersonline` WHERE userid=$userid");
$row = mysql_num_rows($query)
return if(row>=1) ? true : false;
你可以使用这个
【讨论】:
以上是关于PHP中的mysql_query()函数的返回值是啥?的主要内容,如果未能解决你的问题,请参考以下文章