Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在prepare语句中调用connect as函数时出错_Php - Fatal编程技术网

Php 在prepare语句中调用connect as函数时出错

Php 在prepare语句中调用connect as函数时出错,php,Php,编辑。我的错误仅在作为函数调用数据库连接时发生,如果我正常调用数据库连接,则不会发生错误 我试图执行一个prepare语句,将数据库连接作为一个函数,以便在其他函数中重用它。当使用数据库连接函数时,执行普通的SQL代码是有效的,但当我尝试在prepare语句中使用时,会出现错误 这是我的密码 函数连接(){ $servername=“localhost”; $username=“root”; $password=“”; $dbname=“test”; $conn=newmysqli($serve

编辑。我的错误仅在作为函数调用数据库连接时发生,如果我正常调用数据库连接,则不会发生错误

我试图执行一个prepare语句,将数据库连接作为一个函数,以便在其他函数中重用它。当使用数据库连接函数时,执行普通的SQL代码是有效的,但当我尝试在prepare语句中使用时,会出现错误

这是我的密码

函数连接(){
$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的可能重复项我只有在作为函数调用我的连接时才会得到错误。当我称之为正常方式时,它工作得很好。