2015-09-05 28 views
0

我在我的程序中使用n個查詢,基於php mysql。爲了縮短長度我定義的查詢功能:通過函數運行查詢正在使程序變慢

FILE: function.php 
function myquery($query){ 
     $connection = connect(); 
     $result = mysqli_query($connection,$query); 
     return $result; 
    } 

和訪問它像在同一個頁面的不同位置(很明顯,不同的查詢):

FILE: index.php 
    $result = myquery("SELECT itemName, mfrName, itemid, 
       openingstock, conversion, reOrderQty FROM items ORDER BY itemName ASC;"); 

之前實現這一功能的程序是罰款,儘管通過我的頁面縮短我的代碼非常緩慢。

回答

1

您的問題源於每次打電話查詢時打開一個新連接! EEK!它永遠不會關閉。您可以從您的函數中刪除「connect()」語句,並將其作爲單獨的調用。或者,爲了整體更好的代碼流,切換到MySQLI OOP

我建議移動到mysqli oop。它可以用來像這樣

File: function.php 
function getConnection() { 
    $mysqli = new mysqli("localhost", "user", "password", "database"); 
    return $mysqli; 
} 

然後利用它在你的其他文件,像這樣

File: index.php 
$mysql = getConnection(); 
$mysql->query("Select STUFF FROM PLACES"); 
//blah blah later in the file 
$mysql->query("Another more different query!"); 
//end of file 
$mysql->close(); 

見,在這裏我們再次使用相同的連接。反覆建立MySQL連接是一項非常昂貴的操作。