栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

警告:mysql_fetch_ *期望参数1为资源,布尔值给定错误[重复]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

警告:mysql_fetch_ *期望参数1为资源,布尔值给定错误[重复]

查询可能由于各种原因而失败,在这种情况下,mysql_
*和mysqli扩展名都

false
将从它们各自的查询函数/方法中返回。您需要测试该错误情况并进行相应处理。

mysql_ *扩展名

注: 该mysql_功能已被弃用,并在PHP版本7已被删除。

请先检查一下,

$result
然后再传递给
mysql_fetch_array
。您会发现这是
false
因为查询失败。请参阅
mysql_query
文档以获取可能的返回值以及有关如何处理它们的建议。

$username = mysql_real_escape_string($_POST['username']);$password = $_POST['password'];$result = mysql_query("SELECt * FROM Users WHERe UserName LIKE '$username'");if($result === FALSE) {     die(mysql_error()); // TODO: better error handling}while($row = mysql_fetch_array($result)){    echo $row['FirstName'];}

mysqli扩展
程序样式

$username = mysqli_real_escape_string($mysqli, $_POST['username']);$result = mysqli_query($mysqli, "SELECt * FROM Users WHERe UserName LIKE '$username'");// mysqli_query returns false if something went wrong with the queryif($result === FALSE) {     yourErrorHandler(mysqli_error($mysqli));}else {    // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach    foreach( $result as $row ) {        ...

oo风格

$username = $mysqli->escape_string($_POST['username']);$result = $mysqli->query("SELECt * FROM Users WHERe UserName LIKE '$username'");if($result === FALSE) {     yourErrorHandler($mysqli->error); // or $mysqli->error_list}else {    // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach    foreach( $result as $row ) {      ...

使用准备好的语句:

$stmt = $mysqli->prepare('SELECt * FROM Users WHERe UserName LIKE ?');if ( !$stmt ) {    yourErrorHandler($mysqli->error); // or $mysqli->error_list}else if ( !$stmt->bind_param('s', $_POST['username']) ) {    yourErrorHandler($stmt->error); // or $stmt->error_list}else if ( !$stmt->execute() ) {    yourErrorHandler($stmt->error); // or $stmt->error_list}else {    $result = $stmt->get_result();    // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach    foreach( $result as $row ) {      ...

这些示例仅说明 应该执行的操作(错误处理),而没有说明如何执行。

ordie
输出HTML时不应使用生产代码,否则它将(至少)生成无效的HTML。另外,数据库错误消息不应显示给非管理员用户,因为它会显示过多信息。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号