我有一个问题,关于什么时候和什么地方连接到数据库必须进行和关闭。我有一个要插入或从数据库中删除的行数组,这是一个混合。打开和关闭多个查询的mysqli连接
(1)这是我的代码在那里我只是测试插入到数据库:
include('connect.php');
foreach($array as $row)
{
if($row['insert'])
{
insertRow();
}else
{
//deleteRow();
}
}
function insertRow()
{
$sql = "insert sql statement";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
(2)这是行不通的。所以,我提出我的包含文件的位置:
foreach($array as $row)
{
include('connect.php');
if($row['insert'])
{
insertRow();
}else
{
//deleteRow();
}
}
(3),它仍然无法正常工作,所以我将我在这里包括最后的工作原理:
function insertRow()
{
include('connect.php');
$sql = "insert sql statement";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
所以我的问题是: 必由之路我为每个sql查询建立连接,然后关闭它?那么对于我想要做的事情,会看起来像这样?
foreach($array as $row)
{
if($row['insert'])
{
insertRow();
}else
{
deleteRow();
}
}
function insertRow()
{
include('connect.php');
$sql = "insert sql statement";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
conn->close();
}
function deleteRow()
{
include('connect.php');
$sql = "delete sql statement";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
conn->close();
}
但是,这似乎效率低下,特别是如果我有一个100行的数组插入/删除。有没有更好的方法来做到这一点?非常感谢。
你不需要多次包含'connect.php'。在顶部包含'connect.php'文件,然后像'deleteRow($ conn)'一样在函数参数中传递$ conn变量,或者您可以像'deleteRow(){global $ conn; ......}一样使用它' –