有人遇到mysqli的fetch_assoc()方法出错吗?
配置是phpnow5.1.6 :windowsXP + php5.2.14 + apache2.2.6 + MySQL5.1.50
在用mysqli类的fetch_assoc()时,Apache好像歇菜了。见如下代码:
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>";}
<?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]);/* associative 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();?>
[解决办法]
没有错误信息吗?
看样子是没有打开错误显示功能
[解决办法]
那只能是你的关联字段没有和数据库中的对应上。
实在没办法,用预编译处理吧:
$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; }