警告:mysqli_query() 至少需要 2 个参数,1 个在第 10 行的 C:\wamp64\www\OBJEPRO\dbcrud.php 中给出
Posted
技术标签:
【中文标题】警告:mysqli_query() 至少需要 2 个参数,1 个在第 10 行的 C:\\wamp64\\www\\OBJEPRO\\dbcrud.php 中给出【英文标题】:Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp64\www\OBJEPRO\dbcrud.php on line 10警告:mysqli_query() 至少需要 2 个参数,1 个在第 10 行的 C:\wamp64\www\OBJEPRO\dbcrud.php 中给出 【发布时间】:2017-09-27 09:31:20 【问题描述】:我正在使用 OOP、php 创建一个简单的 CRUD,但是当我运行 add.php 以及更新和删除文件时出现错误。每个文件中的相同错误(add.php、update.php、delete.php)
以下是错误:
注意:未定义索引:第 12 行 C:\wamp64\www\OBJEPRO\add.php 中的 Supplier_ID
注意:未定义索引:C:\wamp64\www\OBJEPRO\add.php 第 12 行中的 Company_Name
警告:mysqli_query() 需要至少 2 个参数,1 个在第 10 行的 C:\wamp64\www\OBJEPRO\dbcrud.php 中给出
这是 add.php 中的代码
<?php
require_once("header.php");
require_once("dbcrud.php");
if (isset($_POST['submit']))
$dbcrud=new dbcrud;
$result=$dbcrud->create($_POST['Supplier_ID'],$_POST['Company_Name']);
if($result)
echo "<br />";
echo "Successfully added.";
else
echo "<br />";
echo "Error!";
?>
<p><h3>Add Supplier:</h3></p>
<form action="" method="POST">
<p>Supplier ID: <input type="text" name="Supplier_ID"></p>
<p>Company Name: <input type="text" name="Company_Name"></p>
<p><input type="submit" name="submit" value="Save"></p>
</form>
这是 dbcrud.php 中的代码:
<?php
require_once("dbconn.php");
class dbcrud
public function __construct()
$dbconn=new dbconn;
public function create($Supplier_ID, $Company_Name)
$result=mysqli_query("INSERT INTO suppliers(Supplier_ID, Company_Name) VALUES('$Supplier_ID','$Company_Name')");
return $result;
public function read()
$result=mysqli_query("SELECT * suppliers");
return $result;
public function update($Supplier_ID, $Company_Name)
$result=mysqli_query("UPDATE suppliers SET Company_name='$Company_Name' WHERE Supplier_ID=$Supplier_ID'");
return $result;
public function delete($Supplier_ID)
$result=mysqli_query("DELETE FROM suppliers WHERE Supplier_ID=$Supplier_ID");
return $result;
?>
谁能帮帮我?
【问题讨论】:
嗯,您收到的错误消息非常清楚,并指出了问题所在。您确实查看了文档以了解如何正确使用该功能?如果是这样,那么您对那个错误消息究竟是什么不理解? 你的构造函数其实没用 我还是个学生,还在学习,顺便说一句。 【参考方案1】:mysqli_query()
的文档清楚地说明了如何使用该方法的两种替代方法。你把两者混合,这是行不通的。
忽略很多其他问题,我敢说对你的课程的这种修改会让你更接近你正在寻找的东西。它将数据库连接对象存储在类属性中,以便可以将其重用于实际查询。
<?php
require_once("dbconn.php");
class dbcrud
private $dbconn;
public function __construct()
$this->dbconn = new dbconn;
public function create($Supplier_ID, $Company_Name)
$result = mysqli_query(
$this->dbconn,
"INSERT INTO suppliers(Supplier_ID, Company_Name) VALUES('$Supplier_ID','$Company_Name')"
);
return $result;
public function read()
$result = mysqli_query(
$this->dbconn,
"SELECT * FROM suppliers"
);
return $result;
public function update($Supplier_ID, $Company_Name)
$result = mysqli_query(
$this->dbconn,
"UPDATE suppliers SET Company_name='$Company_Name' WHERE Supplier_ID=$Supplier_ID'"
);
return $result;
public function delete($Supplier_ID)
$result = mysqli_query(
$this->dbconn,
"DELETE FROM suppliers WHERE Supplier_ID=$Supplier_ID"
);
return $result;
但这只是解决方案的一部分。您确实需要通过一些教程来学习如何编写数据库代码。一方面,您的代码中存在巨大的安全隐患。您需要了解使用“准备语句”结合“参数绑定”来防止sql注入漏洞的好处。
因此,以此为起点,许多其他问题仍未得到解答...
【讨论】:
谢谢!我还是个学生,还在学习,但非常感谢。以上是关于警告:mysqli_query() 至少需要 2 个参数,1 个在第 10 行的 C:\wamp64\www\OBJEPRO\dbcrud.php 中给出的主要内容,如果未能解决你的问题,请参考以下文章
警告:mysqli_query():无法获取 mysqli [重复]
得到通知是未定义的变量 $con 和警告 mysqli_query 期望参数 1 是 mysqli