当前位置:首页php > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击