警告:mysqli_query()需要至少2个参数,1在[...]中给出

时间:2018-05-20 17:07:34

标签: php mysql mysqli strong-parameters

  • 警告:mysqli_query()需要至少2个参数,1在第11行的C:\ xampp \ htdocs \ Quman \ registar.php中给出
  • 警告:mysqli_num_rows()要求参数1为mysqli_result,在第12行的C:\ xampp \ htdocs \ Quman \ registar.php中为null
  • 警告:mysqli_query()需要至少2个参数,第23行的C:\ xampp \ htdocs \ Quman \ registar.php中给出1
  • 警告:mysqli_error()预计在第23行C:\ xampp \ htdocs \ Quman \ registar.php中给出1个参数,0

代码:

.collect()

2 个答案:

答案 0 :(得分:2)

错误不言自明,mysqli_query需要2个参数 - 文档可在此处找到:https://php.net/mysqli_query

根据文档,第一个参数是通过mysqli_connect创建的数据库连接。

你的内容应该类似于:

$db = mysqli_connect(..);

// ..

$email_check = mysqli_query($db, "SELECT email FROM users WHERE email='$email'");

此外,您的代码容易受到SQL注入攻击,您应该考虑在查询中使用参数,例如:

if ($stmt = mysqli_prepare($db, "SELECT email FROM users WHERE email = ?"))
{
    mysqli_stmt_bind_param($stmt, "s", $email);

    mysqli_stmt_execute($stmt);

    $email_check = mysqli_stmt_num_rows($stmt);
}

答案 1 :(得分:0)

TL; DR您需要在mysqli_query函数中提供查询连接。

我想你问为什么你会收到这些错误消息。第一条消息指出你需要在mysqli_query调用中有两个参数。第一个是与服务器的连接,第二个是查询本身。

以下是https://www.w3schools.com/php/func_mysqli_query.asp

的示例
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
// Perform queries
mysqli_query($con,"SELECT * FROM Persons");
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");
mysqli_close($con);
?>

第二条错误消息是因为当msqli_query调用失败时,$ email_check将变为null,从而使msqli_num_rows失败。 请注意,您显然必须更改所有myqsli_query调用。如果您想了解有关通话的更多信息http://php.net/manual/en/mysqli.query.php

,请参阅手册链接