Warning :: mysql_query()期望参数1为字符串

时间:2016-09-10 17:46:50

标签: php mysql

我想创建一个登录页面,并且每次输入正确的ID和密码时都无法访问该帐户,而是说错误的ID和密码

这是代码

here is the picture of code

这就是我得到的错误

and here is the error

4 个答案:

答案 0 :(得分:2)

你应该使用PDO或Mysqli。根据您的PHP版本,不推荐使用mysql_*函数。请参阅manual's page上的警告:

  

警告   此扩展在PHP 5.5.0中已弃用,并且已在PHP 7.0.0中删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括:   mysqli_query()   PDO ::查询()

在该页面上,您可以看到当前遇到的问题:

  

混合mysql_query(字符串$ query [,resource $ link_identifier = NULL])

因此,查询被认为是第一个参数,连接链接是第二个参数。您的代码已反转,或使用mysqli格式。

您的代码也可以使用SQL注入并使用未使用的密码;两种非常不好的做法。

您还应修改整个代码方法。 PHP处理应该在页面生成之前完成,而不是在之后。

如果您发布了代码,则会有代码答案。我们不会转录。

答案 1 :(得分:1)

  1. 您应该发布源代码,如果没有它,我们无法真正知道问题出在哪里......但我认为问题是您放入gsub!的问题,它应该是一个字符串而不是别的什么
  2. 您应该停止使用已弃用的PHP mysql函数,我认为最简单的解决方案是转移到 mysqli ,这与 mysql 函数非常相似
  3. 你应该使用准备好的陈述,这是一个例子(是的,从http://php.net/manual/en/mysqli.prepare.php被盗):
  4. 使用带有预准备语句的MySQLi的示例代码:

    mysql_query()

答案 2 :(得分:0)

变量 user_email 与关键字 AND 之间可能存在空间问题,如图所示:

它应该是这样的 -

$check_user = "select * from signup WHERE email_id='".$user_email."' AND password='".$user_pass."'";

答案 3 :(得分:0)

1 - 通过

检查$check_user
echo $check_user; //or
var_dump($check_user); 

在向其附加$ user_pass和$ user_email之后查看最终查询

2 - 您必须回显mysql错误才能获得更详细的错误消息。使用

echo mysql_error($conn)

我猜$ user_pass或$ user_email或两者都可能出错了