有沒有辦法使用的功能在SQL這樣的:有什麼辦法可以在sql中使用函數嗎?
$title = clean_title($title);
"SELECT * FROM article WHERE title = $title"
到
$title = clean_title($title);
"SELECT * FROM article WHERE clean_title(title) = $title"
療法是什麼辦法?
有沒有辦法使用的功能在SQL這樣的:有什麼辦法可以在sql中使用函數嗎?
$title = clean_title($title);
"SELECT * FROM article WHERE title = $title"
到
$title = clean_title($title);
"SELECT * FROM article WHERE clean_title(title) = $title"
療法是什麼辦法?
因爲您添加了PHP標籤,我認爲它也是一個使用PHP的選項。在PHP中,你可以使用這樣的事情:
$SQL = "SELECT * FROM article WHERE ".clean_title($title)." = $title"
號
很多相同的方式服務器端代碼和客戶端代碼是由完全不同的平臺,在完全不同的評價次,數據庫代碼也是如此。
在這種情況下,將數據庫視爲服務器,將PHP引擎視爲客戶端。
您的PHP代碼正在構建SQL代碼,稍後將由數據庫進行評估。在您的PHP代碼中,您可以調用PHP函數來驅動創建該SQL代碼。但是,一旦SQL代碼到達數據庫,PHP就不再參與其中。數據庫引擎只能評估SQL代碼,而不是PHP代碼。
在SQL代碼中可以表達大量的邏輯,包括可以定義的內置函數或自定義函數/過程(很大程度上取決於所使用的SQL引擎)。但是這個邏輯需要在SQL中定義,而不是在PHP中定義。
是的http://dev.mysql.com/doc/refman/5.0/en/create-function.html但你可能會發現在php更簡單的處理 – Steve 2014-09-26 12:34:31
不,你不能在一個SQL語句中使用PHP函數。但是,您可以創建SQL函數。 – Daan 2014-09-26 12:35:05
你可以說一個實驗嗎?謝謝 – user3932710 2014-09-26 12:35:41