我有一個問題,關於什麼時候和什麼地方連接到數據庫必須進行和關閉。我有一個要插入或從數據庫中刪除的行數組,這是一個混合。打開和關閉多個查詢的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; ......}一樣使用它' –