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

有人遇到mysqli的fetch_assoc()方法出错吗?解决方案

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

有人遇到mysqli的fetch_assoc()方法出错吗?
配置是phpnow5.1.6 :windowsXP + php5.2.14 + apache2.2.6 + MySQL5.1.50

在用mysqli类的fetch_assoc()时,Apache好像歇菜了。见如下代码:

PHP code

<!---ecms Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->while($row =$rs->fetch_assoc()){echo "<tr>";echo "<td>" . $row['FirstName'] . "</td>";echo "<td>" . $row['LastName'] . "</td>";echo "<td>" . $row['Age'] . "</td>";echo "<td>" . $row['HomeTown'] . "</td>";echo "<td>" . $row['Job'] . "</td>";echo "</tr>";}

IE提示无法显示页面,FF提示载入页面时到服务器的连接被重置。
如果把上面的代码去掉则恢复正常。
如果把fetch_assoc关联数组代换为fetch_row()的索引数组也没事,对应把$row[‘FirstName’]换成$row[0]就可以。
但有时这样代码会变得不清晰,所以上来救助大家有无解决方法?!
我在网上google了很久,发现很少人遇到这样的问题,即使有,也只是书写错误什么的,不适合解决我这个问题。

——解决方案——————–
使用 $rs->fetch_array 方法吧
——解决方案——————–
用fetch_array()加上参数就好了:MYSQLI_ASSOC[关联], MYSQLI_NUM[数字], MYSQLI_BOTH[全部]

PHP code

<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) {    printf("Connect failed: %s\n", mysqli_connect_error());    exit();}$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";$result = $mysqli->query($query);/* numeric array */$row = $result->fetch_array(MYSQLI_NUM);printf ("%s (%s)\n", $row[0], $row[1]);/* associ<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark><pre>搞代gaodaima码

ative array */$row = $result->fetch_array(MYSQLI_ASSOC);printf (“%s (%s)\n”, $row[“Name”], $row[“CountryCode”]);/* associative and numeric array */$row = $result->fetch_array(MYSQLI_BOTH);printf (“%s (%s)\n”, $row[0], $row[“CountryCode”]);/* free result set */$result->close();/* close connection */$mysqli->close();?>
——解决方案——————–
没有错误信息吗?
看样子是没有打开错误显示功能
——解决方案——————–
那只能是你的关联字段没有和数据库中的对应上。
实在没办法,用预编译处理吧:

PHP code

$sql = "SELECT mid,movName,movType,movStar,movImg,movPlay,director,producter FROM mov_film";        $stmt = $this->mysqli->prepare($sql);        $stmt->execute();        $stmt->store_result();         $stmt->bind_result($mid,$movName,$movType,$movStar,$movImg,$movPlay,$director,$producter);        $rows = $stmt->affected_rows;        if ($rows > 0){            $arrMovie = array();            while($stmt->fetch()){                //将文件名从路径中取出并转换为相对路径                $movImg = "../../images/".basename($movImg);                //截取文件名                $arrStr = explode(".",basename($movPlay));                $movPlay = "../../videos/".$arrStr[0];                $arr = array(                    "mid" => $mid,                    "movName" => $movName,                    "movType" => $movType,                    "movStar" => $movStar,                    "movImg" => $movImg,                    "movPlay" => $movPlay,                    "director" => $director,                    "producter" => $producter                );                array_push($arrMovie,$arr);            }            return $arrMovie;        } 


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

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

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

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