MySQL函数查询期望参数1为字符串

时间:2014-07-02 04:17:38

标签: php mysql mysqli

我已经创建了一个进行数据库查询的函数:

function my_db_query($query_data) {
    global $db_connection;

    $db_query = mysql_query($db_connection, $query_data);

    if(mysql_num_rows($db_query) > 0) {
        $db_query = mysql_fetch_array($db_query);
    } else {
        echo "NONE";
    }
}

编辑:示例:我想调用my_db_query(“SELECT FROM ... WHERE ...”);

如果我致电该功能 "Warning: mysql_query() expects parameter 1 to be string, resource given in..."

PS:我知道mysql已被弃用。该函数实际上通过用户选择使用mysql和mysqli。

2 个答案:

答案 0 :(得分:4)

您撤消了mysql_query中的2个参数。应该是:

mysql_query($query_data,$db_connection);

我认为$query_data是一个SQL语句。

此外,不推荐使用mysql_*函数,因此没有理由再使用它。考虑使用PDO / MySQLi。

还有一件事:在执行查询之前清理输入查询参数非常重要;或者您的代码可能容易受到SQL注入攻击。

答案 1 :(得分:3)

纠正这一行

$db_query = mysql_query($query_data);

而不是

$db_query = mysql_query($db_connection, $query_data);

检查Manual是否有mysql_query函数。