2013-04-29 20 views
0

每次我創建一個mysqli的對象,我用這樣的準備mysqli的語句(有時每頁數):我是否創建了太多的mysqli對象?

$update_foobar_statement = $mysqli->prepare("UPDATE foo SET bar = ? WHERE foobar = ?"); 
$update_foobar_statement->bind_param('ss', $bar, $foobar); 
$update_foobar_statement->execute(); 

我本質上是創建和mysqli對象的副本。這讓我想到我可能會創建太多對象,並傷害我的Web應用程序的整體性能。

我喜歡通過初始變量來澄清mysqli語句正在做什麼,但這是不好的做法嗎?我應該做下面的事情嗎?

$mysqli->prepare("UPDATE foo SET bar = ? WHERE foobar = ?"); 
$mysqli->bind_param('ss', $bar, $foobar); 
$mysqli->execute(); 
+1

如果你intantiating要查詢比您正在創建多個對象..類mysqli的,如果每次你實例化$ MySQL的新= mysqli(...)只有一次使用該變量..你只是使用一個對象... – Dinesh 2013-04-29 22:20:20

+0

也可以強制創建單個對象通過創建singleton類的數據庫.. – Dinesh 2013-04-29 22:21:09

回答

0

你也必須也存儲在第二種情況下的$mysqli->prepare的返回值,所以在討論剩下的唯一的事情是變量的名稱,如果你會重用與否。

它在底線並不重要。對每個查詢使用一個單獨的變量進行記憶理論上可以產生更高的要求,但是至少在成千上萬的情況下才會有實際影響。所以不要擔心這一點。

0

如果總是相同的SQL你可以做再次的那部分:

$update_foobar_statement->bind_param('ss', $bar, $foobar); 
$update_foobar_statement->execute(); 
相關問題