警告:mysql_query() 期望参数 2 是资源 [重复]

Posted

技术标签:

【中文标题】警告:mysql_query() 期望参数 2 是资源 [重复]【英文标题】:Warning: mysql_query() expects parameter 2 to be resource [duplicate] 【发布时间】:2013-05-02 06:04:21 【问题描述】:

我目前遇到以下脚本的问题。执行脚本后,我确实收到消息“连接正常!”但是,我也收到以下消息:

警告:mysql_query() 期望参数 2 是资源、对象 在线/opt/lampp/htdocs/worldofclucky.net/scripts/auth.php 中给出 11

警告:mysql_fetch_array() 期望参数 1 是资源,null 在线/opt/lampp/htdocs/worldofclucky.net/scripts/auth.php 中给出 12

知道我做错了什么吗?我远非 PHP/MySQL 专家,我什至不认为自己是新手...我确实做了一些测试,并且 $username 变量从上一页正确发送,并且在将 SELECT * FROM forum.mybb_users WHERE username = 'x_clucky' LIMIT 1 输入 MySQL 时客户端,它提供了您希望获得的所有信息。 PHP代码如下:

<?php
$username=$_POST["username"];
$hashed_password = md5($_POST['password']); /* For MyBB its $mybb->input['password'] */
$con=mysqli_connect("worldofclucky.net","clucky","CENSORED","forum");

// Check connection
if (mysqli_connect_errno($con))
  
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
   else  echo "Connection was OK!\n";
$query = mysql_query("SELECT * FROM mybb_users WHERE `username` = '$username' LIMIT 1",$con);
$row = mysql_fetch_array($query);

$encrypted_password = md5(md5($row['salt']).$hashed_password);
if($encrypted_password == $row['password']) 
echo "<script>alert('test');</script>";

mysqli_close($con);
?>

感谢您的帮助

【问题讨论】:

这能回答你的问题吗? Can I mix MySQL APIs in PHP? 【参考方案1】:

mysql 更改为mysqli 并使用以下类型的查询。您不能同时使用mysqlmysqli

$query = mysqli_query($con, "SELECT * FROM mybb_users WHERE `username` = '$username' LIMIT 1");
$row = mysqli_fetch_array($query);

【讨论】:

【参考方案2】:

快速浏览一下,您似乎使用mysqli 函数进行连接,然后使用mysql 函数进行实际查询。 mysql_* 函数现已弃用。

【讨论】:

以上是关于警告:mysql_query() 期望参数 2 是资源 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

警告:mysqli_query() 期望参数 2 是字符串,对象在

获取 PHP 错误警告:fputcsv() 期望参数 2 为数组

警告:mysql_num_rows() 期望参数 1 是资源,在第 189 行给出布尔值 [重复]

警告:sqlite_query() 期望参数 1 是资源,给定字符串 [重复]

登录脚本中的“警告:mysql_fetch_array() 期望参数 1 是资源,布尔值”

得到通知是未定义的变量 $con 和警告 mysqli_query 期望参数 1 是 mysqli