Php 在prepare语句中调用connect as函数时出错
编辑。我的错误仅在作为函数调用数据库连接时发生,如果我正常调用数据库连接,则不会发生错误 我试图执行一个prepare语句,将数据库连接作为一个函数,以便在其他函数中重用它。当使用数据库连接函数时,执行普通的SQL代码是有效的,但当我尝试在prepare语句中使用时,会出现错误 这是我的密码Php 在prepare语句中调用connect as函数时出错,php,Php,编辑。我的错误仅在作为函数调用数据库连接时发生,如果我正常调用数据库连接,则不会发生错误 我试图执行一个prepare语句,将数据库连接作为一个函数,以便在其他函数中重用它。当使用数据库连接函数时,执行普通的SQL代码是有效的,但当我尝试在prepare语句中使用时,会出现错误 这是我的密码 函数连接(){ $servername=“localhost”; $username=“root”; $password=“”; $dbname=“test”; $conn=newmysqli($serve
函数连接(){
$servername=“localhost”;
$username=“root”;
$password=“”;
$dbname=“test”;
$conn=newmysqli($servername、$username、$password、$dbname);
返回$conn;
}
如果(connect()->connect_错误){
die(“连接失败:”.connect()->connect\u错误);
}否则{
呼应“好”;
}
$val=“1”;
$stmt=connect()->prepare(“从id=?”的国家/地区选择*”;
$stmt->bind_参数(“s”,$val);
$stmt->execute();
$result=$stmt->get_result();
而($row=$result->fetch_assoc()){
echo$row['name'];
}
$stmt->close();
当将数据库作为普通变量连接时,这样做是有效的
$stmt=$conn->prepare(“从id=?”的国家/地区选择*”;
但是,每当我尝试将连接作为函数调用时,就会得到“调用bool上的成员函数fetch_assoc()”。
这段代码有什么不对?在搜索了一段时间后,基于此,我可以通过声明一个用于连接的变量来修复我的问题。然而,这并不能解释为什么直接调用connect不起作用。有人能解释一下为什么第一种方法不起作用吗
$db = connect();
$stmt = $db->prepare("SELECT * FROM countries WHERE id = ?");
在搜索了一段时间后,基于此,我可以通过为连接声明一个变量来解决我的问题。然而,这并不能解释为什么直接调用connect不起作用。有人能解释一下为什么第一种方法不起作用吗
$db = connect();
$stmt = $db->prepare("SELECT * FROM countries WHERE id = ?");
@LLJ97的可能重复只有在我将连接作为函数调用时才会出现错误。当我以正常方式调用它时,它工作得很好。@LLJ97的可能重复项我只有在作为函数调用我的连接时才会得到错误。当我称之为正常方式时,它工作得很好。