当我了解有关PHP和MySQL的更多信息时,我对何时创建与服务器的连接感到非常困惑。我想知道每次执行新查询时是否都必须创建一个新连接。例如,如果要使用以下代码更新某些数据,是否需要创建两个连接?有人可以向我解释该机制吗?谢谢!
$db_con2=new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME);
$db_con=new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME);
if($db_con){
some operations omitted
$stmt = $db_con2->prepare("");
$stmt->bind_param();
$stmt->execute();
}
mysqli_close($db_con2);
mysqli_close($db_con);
答案 0 :(得分:3)
APIView
答案 1 :(得分:2)
将连接视为变量。 $db_con
作为连接,您可以在每个新脚本的开头(使用脚本中的类或包含的文件)建立此连接,然后就可以在该变量上运行所需的任何SQL查询。>
您不需要不需要手动关闭MySQLi连接,因为到达脚本末尾时,该连接会自动关闭。因此,不需要在脚本的最后一行加上$db_con->close()
(这是正确的语法)。
典型的脚本将包含一个包含连接数据的类或文件;在脚本顶部,然后在整个脚本中使用它,并且所有详细信息都会在脚本末尾自动被忘记。
也请不要与过程和面向对象交互混淆。您当前使用的是面向对象的,但是您的mysqli_close()
函数调用是 Procedural 调用,并且这两个方法彼此不交互。
答案 2 :(得分:1)
您需要做的就是为连接对象创建一个不同的文件,并在需要连接对象的文件中使用该文件(如果需要的话),如果您确定要使用相同的主机,则可以使用该文件。 ,整个项目中的数据库及其表。
这样,您可以保存您的LOC(代码行),从而使其达到最佳状态,这还将节省您的时间和不必要的繁琐工作。
也不需要每次都关闭连接。以下是可选的:
mysqli_close(CONNECTION_OBJECT);
答案 3 :(得分:0)
请根据此修改您的连接:
$mysqli_c1 = new mysqli($hostname, $username, $password, $database1);
$mysqli_c2 = new mysqli($hostname, $username, $password, $database2);
使用数据库1:
$mysqli_c1->query('select * from tablename');
使用数据库2:
$mysqli_c2->query('select * from tablename');
根据您的代码:
if($mysqli_c1->connect_errno){
//Error handle code here
}else{
//success code here
}