php提示Warning:mysql_fetch_array() expects的解决方法
作者:野牛程序员:2024-01-31 21:01:28php阅读 2983
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

