簡體   English   中英

將MySQL查詢分為$ query和$ result有什么價值?

[英]Any value of separating a MySQL query into $query and $result?

我總是看到這樣的MySQL查詢結構,即使使用最簡單的查詢也是如此:

$query = "SELECT * FROM table_name WHERE id = '1'";
$result = mysql_query($query);

通過簡單的單行查詢進行上述操作是否有任何價值,時間或其他方式?

$result = mysql_query("SELECT * FROM table_name WHERE id = '1'";

我一直使用前者,因為當我開始使用PHP時,我認為最好是簡單地復制其他所有人,但是由於我正在開發一個相當大的(相對於我的其他工作)應用程序,因此我可以削減大量數量,如果真的沒有區別的話。

對於第一種方法,如果發生錯誤,更容易記錄SQL(並且更容易發現錯字,例如缺少括號)。

通常,我喜歡將它們分開,因為我可以輕松地print $query; 當我試圖弄清楚為什么我的查詢不起作用時。 這主要是個人喜好問題。

實際上,除了一件事之外,沒有任何區別。 如果將查詢放在單獨的變量中,則可以重復使用該變量。 如果查詢中發生任何更改,您只需要在變量中編輯查詢

您始終可以創建一個自定義函數來接受查詢並運行它,並傳遞其他可選參數,以防您想返回查詢或記錄查詢以跟蹤任何問題等。

通過簡單的單行查詢進行上述操作是否有任何價值,時間或其他方式?

當然,正如MSpreij所說,如果出現錯誤,您可以檢查查詢。

我總是看到這樣的MySQL查詢結構,即使使用最簡單的查詢也是如此:

$query = "SELECT * FROM table_name WHERE id = '1'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);

這個簡單的構造將為您節省大量的stackoverflow“這意味着mysql_fetch_array(): supplied argument is not a valid MySQL result

注意其他部分。 這稱為編程
如果出現錯誤,它將自動打印查詢以及mysql錯誤消息。 或使用適當的設置將其記錄到活動服務器中的錯誤日志中。

不寫print $query; 手動。

但是,這兩種方法都很丑陋。

一個人絕對不要使用原始API函數。

這是丑陋的,難以維護的,腫的和重復的。

應該開發一個庫 ,一種使通話更智能,減少重復的功能

$data = mydb_get_row("SELECT * FROM table_name WHERE id = 1");

內部有所有處理。 錯誤處理,查詢日志記錄,參數檢查和api函數調用。
但是,作為一個真正的單一公司,而不是您想要實現的愚蠢的公司。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM