雖然可以限制基於授予用戶的設置,這將阻止未經授權的操作是最安全的解決方案的操作,您可以使用的preg_match檢查的查詢某些受限制詞的存在。但是,可能會出現這樣的用例,其中某些單詞可能用在SELECT查詢中,如果您需要它們用於基於文本的查找=,LIKE,REGEX等。
要處理此問題,可以去掉引號內的任何內容或字符串中的撇號,以便忽略它們。
$query = preg_replace('/"[^"]+"/','', $query);
$query = preg_replace("/'[^']+'/",'', $query);
然後,用你已經離開的字符串,檢查被禁止的MySQL單詞或短語的列表。
if(preg_match('/[alter|set|update|insert|delete|replace|into|grant]/',strtolower($query))) {
$bad_query = true;
}
這是一個更復雜的實際PHP解決方案。最安全的辦法是限制你的MySQL調用的訪問,但是,如果你的目標是測試特定的語法 - 你可以實現這一目標。
有關GRANT選項和信息的命令集都允許,你可以使用這個網址作爲一個偉大的資源: https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
創建數據庫用戶這沒有必須(刪除,更新等)的作用附着在其上。 http://webmasters.stackexchange.com/questions/2242/how-to-create-separate-users-in-phpmyadmin-each-one-cant-see-others-databases –