2012-03-12 52 views
0

我正在做一個函數,它需要一個表名和一個鍵值數組並將其插入到我的數據庫中。我想知道是否應該使用MySQLi爲此準備的語句。我在想,有時候我不得不連續插入類似的數據。例如:用MySQLi插入數據 - 我應該使用預準備語句嗎?

$db->insert('user_meta', array('meta_key' => 'title', 'meta_value' => 'Developer')); 
$db->insert('user_meta', array('meta_key' => 'location', 'meta_value' => 'New York')); 
$db->insert('user_meta', array('meta_key' => 'employer', 'meta_value' => 'Subway')); 
$db->insert('user_meta', array('meta_key' => 'language', 'meta_value' => 'English')); 

如果我的insert函數使用了prepared語句,這種類型的操作會更快嗎?

回答

1

是的,這是準備報表的目的。

+0

它也被用來防止SQL注入,即使我不知道如何處理這種語句中的動態表名,我認爲他們需要特殊的驗證 – stryba 2012-03-12 17:21:32

+0

它是綁定的參數,可以幫助您避免SQL注入。它們傾向於在準備好的語句的同時被引入(並且在運行類似而非相同的查詢時提供進一步的性能提升)。 – Quentin 2012-03-12 17:30:58

1

您應該幾乎總是使用準備的語句,幾乎滿足每個特定的需求。