2010-01-04 65 views
3

據我所知,sqlite_exec用於不返回結果集的查詢,而sqlite_query用於返回結果集的查詢。PHP + SQLite sqlite_exec和sqlite_query與mysql_query

但是,我可以使用sqlite_query進行各種查詢,就像mysql_query那樣,是否有任何副作用?

+0

我能想到的唯一原因就是所涉及的資源 - 爲什麼要使用一個方法/函數來創建一個你不會使用的變量/資源?它也會更明確地說明你的代碼在做什麼...... – 2010-01-04 04:17:43

回答

2

sqlite_query

sqlite_query()返回一個緩衝的可搜索結果句柄。這對於需要能夠隨機訪問行的合理小型查詢很有用。緩衝結果句柄將分配內存來保存整個結果,並在獲取之前不會返回。如果您只需要順序訪問數據,建議您使用更高性能的sqlite_unbuffered_query()來代替。

sqlite_exec

該函數將返回一個布爾結果;成功爲TRUE或失敗爲FALSE。如果您需要運行一個返回行的查詢,請參閱sqlite_query()。

我不認爲總是使用sqlite_query會有太大的區別,雖然你可能會失去一些時鐘週期,而sqlite_query發現沒有結果。這兩個函數都會在失敗時返回FALSE,所以只要你總是檢查FALSE而不是TRUE,你就可以避開它。

如果您正在執行簡單的PHP數據庫工作,您可能還想查看sqlite_unbuffered_query,並按順序遍歷查詢的結果。

我檢查了C API,並沒有給出使用一個函數而不是其他函數的性能損失的任何跡象。

+0

沒問題,太棒了! – mauris 2010-01-04 04:53:22