我想爲表添加前綴,並且最近編寫了一個PHP腳本來提取字符串SQL查詢中的所有表。從SQL查詢中提取所有表
$sql = 'UPDATE festivals SET desc = "Starts from July"';
preg_match_all('/(from|into|update|table|join) (`?\w+`?)\s/i', $sql, $matches);
它的工作好,但唯一的問題是,它提取July
,因爲它沒有一個SQL值和實際表名稱區分,所以它假定July
將是一個表了。
現在我認爲解決方案應該是防止提取包含在單引號或雙引號中的內容,但不知道如何做。
你應該真的考慮這個問題:http://stackoverflow.com/questions/281041/regular-expression-to-find-all-table-names-in-a-query。 – nvartolomei
謝謝,但這是另一個問題,因爲我想添加一個前綴到表,並不關心空白,別名或等 – Omid
你試過我建議在下面的正則表達式? –