php提示Warning:mysql_fetch_array() expects的解决方法
作者:野牛程序员:2024-01-31 21:01:28php阅读 2732
mysql_fetch_array() expects
警告通常表示正在使用已被弃用的 PHP MySQL 扩展。这个扩展自 PHP 5.5.0 起已经被弃用,并且在 PHP 7.0.0 版本中移除。
要解决这个问题,应该考虑使用更现代的数据库扩展,比如 MySQLi(MySQL Improved)或 PDO(PHP Data Objects)。这些扩展提供了更好的性能和安全性,并且支持更多的功能。
以下是迁移代码的示例:
使用 MySQLi:
<?php // 连接到数据库 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 查询数据库 $sql = "SELECT * FROM your_table"; $result = $conn->query($sql); // 检查是否有结果 if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "字段1: " . $row["field1"]. " - 字段2: " . $row["field2"]. "<br>"; } } else { echo "0 结果"; } // 关闭连接 $conn->close(); ?>
使用 PDO:
<?php // 连接到数据库 try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置 PDO 错误模式为异常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "连接成功"; } catch(PDOException $e) { echo "连接失败: " . $e->getMessage(); } // 查询数据库 $stmt = $conn->prepare("SELECT * FROM your_table"); $stmt->execute(); // 设置结果集为关联数组 $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); // 遍历结果集 foreach($stmt->fetchAll() as $row) { echo "字段1: " . $row['field1'] . " - 字段2: " . $row['field2'] . "<br>"; } // 关闭连接 $conn = null; ?>
通过使用 MySQLi 或 PDO,可以避免使用已被弃用的函数,从而消除相关的警告。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
