错误:调用未定义的函数 mysql_query() [重复]

Posted

技术标签:

【中文标题】错误:调用未定义的函数 mysql_query() [重复]【英文标题】:Error: Call to undefined function mysql_query() [duplicate] 【发布时间】:2019-05-07 20:44:31 【问题描述】:

有什么问题?

我想显示数据库中的数据,但代码有问题

有人说 mysql_quety 在 php 7 中不起作用

好的,那我该如何解决呢?

<?php 
    if (isset($_GET['id'])) 
        include('database_connection.php'); 
        $id = preg_replace('#[^0-9]#i', '', $_GET['id']); 
        $sql = mysql_query("SELECT * FROM shoes WHERE id='$id' LIMIT 1");
        $productCount = mysql_num_rows($sql); 
        if ($productCount > 0) 
            while($row = mysql_fetch_array($sql)) 
                 $model_name = $row["model_name"];
                 $price = $row["price"];
                 $brand = $row["brand"];
                 $color = $row["color"];
                 $type = $row["type"];
             

         else 
            echo "That item does not exist.";
            exit();
        

     else 
        echo "Data to render this page is missing.";
        exit();
    
    mysql_close();
    ?>

【问题讨论】:

在 PHP 7 中删除了ext/mysql 相关函数。在将应用程序迁移到适当的函数时,您需要使用ext/mysqliPDO_MYSQL 或以其他方式使用shim 【参考方案1】:

mysql 在 PHP 5.5.0 中被弃用,并在 PHP 7.0.0 中被删除。

所以改用mysqli

    $sql = mysqli_query($db_connection, "SELECT * FROM shoes WHERE id='$id' LIMIT 1");
    $productCount = mysqli_num_rows($sql); 
    if ($productCount > 0) 
        while($row = mysqli_fetch_array($sql)) 
             $model_name = $row["model_name"];
             $price = $row["price"];
             $brand = $row["brand"];
             $color = $row["color"];
             $type = $row["type"];
         

     

【讨论】:

谢谢,但它不起作用 :( 警告:mysqli_query() 需要至少 2 个参数,第 5 行的 D:\XAAMP\htdocs\ict\single.php 中给出 1 个警告:mysqli_num_rows( ) 期望参数 1 为 mysqli_result,在第 6 行的 D:\XAAMP\htdocs\ict\single.php 中给出 null 我能做什么??? 这里值得添加一个prepare() 调用来处理讨厌的SQL injection bug。 tadman 是正确的。我还为您编辑了我的代码示例以包含 $db_connection

以上是关于错误:调用未定义的函数 mysql_query() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

phpMyAdmin 错误调用未定义函数

数据流 - 未调用函数 - 错误 - 未定义名称

未捕获的错误:调用未定义的函数 have_post()

调用类方法时出现“调用未定义函数”错误

未捕获的错误:调用未定义的函数 mysql_escape_string()

Codeigniter:调用未定义的函数(模型)