mysql_store_result()与mysql_use_result()的区别

### 如何在 MySQL 中使用 `mysql_store_result()` 函数 `mysql_store_result()` 是用于获取由 `mysql_query()` 执行的 SQL 查询所返回的结果集。当执行的是 SELECT 或 SHOW 类型的查询时,此函数特别有用。 #### 返回 NULL 的情况 如果 `mysql_store_result()` 返回 NULL,则可能是因为没有可用的数据行被检索到,或者是由于发生了错误[^1]。为了区分这两种情形,可以检查是否有错误发生: - 使用 `mysql_errno()` 来检测是否存在错误; - 如果未发现错误(即 `mysql_errno()` 返回0),则意味着确实没有任何数据行要读取;如果有错误存在,则可以通过 `mysql_error()` 获取具体的错误信息[^2]。 #### 替代方案 除了通过 `mysql_field_count()` 判断外,还可以直接利用 `mysql_errno(&mysql)` 来替代它,在这种情况下可以直接从 `mysql_store_result()` 查找错误,而不需要依赖于 `mysql_field_count()` 的值来进行推测[^3]。 #### PHP 示例代码 下面是一个简单的PHP脚本例子展示如何正确处理 `mysql_store_result()` 和潜在的 NULL 值: ```php <?php $connection = mysql_connect('localhost', 'username', 'password'); if (!$connection) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db('testdb', $connection); if (!$db_selected) { die ('Can\'t use test db : ' . mysql_error()); } $query = "SELECT id,name FROM users"; $result = mysql_query($query); // Check for errors after query execution. if (mysql_errno()) { echo "Error executing the query."; } else { // Attempt to fetch result set. if ($result_set = mysql_store_result($connection)) { while ($row = mysql_fetch_assoc($result_set)) { printf("%s (%s)\n", htmlspecialchars($row['name']), $row['id']); } // Free up memory associated with the result set once done processing it. mysql_free_result($result_set); } elseif (!mysql_field_count($connection)){ echo "No rows returned or no select statement was executed.\n"; } } ?> ``` 请注意上述示例中的数据库连接方式已经过时,建议采用更安全可靠的 API 接口如 PDO 或者 mysqli 进行操作[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值