mysql - PHP 7 中获取 mysql 结果的函数

标签 mysql function php-7

我正在努力解决以下问题。几年前,我编写了一个函数来检索 MYSQL 结果(多行)。直到 PHP7,这段代码都可以正常工作:

function MultipleRows($query)
{
    global $dbhost, $dbname, $dbuser, $dbpass;
    mysql_connect($dbhost, $dbuser, $dbpass)
        or die("Error! Couldn't <b>Connect</b>.");

    mysql_select_db($dbname)
        or die("Error! Couldn't <b>Select database</b>.");

    $result = mysql_query($query)
        or die("Error! Couldn't execute query.");

    if(($result)&&(mysql_num_rows($result)>0))
    {
        return $result;
    } else {
        return false;
    }
    mysql_close();
}

现在在 PHP7 中,这段代码似乎不再起作用了。经过大量搜索后,我想出了这个作为替代品,但不幸的是它不起作用:

function MultipleRows($query)
{
    $mysqli = new mysqli($dbhost, $dbpass, $dbuser, $dbname); 

    $result = mysqli_fetch_all($mysqli->query($query), MYSQLI_ASSOC);
    return $result;
    $mysqli->close();
}

该函数旨在使用如下代码:

$res_test = MultipleRows("SELECT id, name FROM table");

if($res_test)
{
    while($res = mysql_fetch_array($res_test))
    {
        echo $res['id'].' '.$res['name'];
    }
}

重写“显示代码”(最后一个片段)不是一个好的选择,因为在这种情况下我必须重写网站中的许多行。谁可以在这方面给我一些帮助?提前致谢!

最佳答案

mysql 扩展在 PHP 5.x 中被弃用后,已从 PHP 7 中删除。

您可以使用 mysqli 重写函数 MultipleRows(),如下所示:

function MultipleRows($query)
{
    global $dbhost, $dbpass, $dbuser, $dbname;
    $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); 
    $result = $mysqli->query($query);
    if ($result !== FALSE)
      $result = $result->fetch_all(MYSQLI_ASSOC);
    $mysqli->close();
    return $result;
}

几点说明:

  • 使用全局变量($dbhost$dbuser$dbpass$dbname< 不是一个好主意)
  • 这种处理数据库查询的方式会让您容易受到 SQL 注入(inject)攻击

关于mysql - PHP 7 中获取 mysql 结果的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40463903/

相关文章:

r - 将向量如 c ("x","y","z") 转换为 function(x , y, z){}

php - 如何过滤字符串以提取符号后的文本?

php - 使用 php v7.0.13 数组到字符串转换错误

c# - Mysql如果存在则更新否则插入

mysql - MySQL 中的精确小数除法

sql - 如果字段在 MySQL 中为空,则返回 0

php - add-apt-repository ondrej/php 用于旧的 ubuntu 版本 (14) 和 php 7.0

mysql - SELECT AND INSERT QUERY into multiple table with conditions

function - 如何在VBA中找到闰年?

php - 将多个类型提示对象动态传递到 PHP 7 中类的构造函数中