我想構建一個PHP腳本來驗證SQL查詢,但不會執行它。它不僅應該驗證語法,還應該在可能的情況下讓您知道查詢是否可以根據查詢中的命令執行。這裏是我想要做的事情的僞代碼:有沒有辦法讓PHP驗證SQL語法而不執行它?
<?php
//connect user
//connect to database
//v_query = $_GET['usrinput'];
if(validate v_query == true){
echo "This query can be executed";
}
else{
echo "This query can't be executed because the table does not exist.";
}
//disconnect
?>
就像這樣。我希望它在不執行它的情況下模擬查詢。這就是我想要的,我無法在此找到任何東西。
爲什麼我們不希望執行查詢的一個例子是查詢是否向數據庫添加了某些內容。我們只是希望它在不修改數據庫的情況下進行模擬。
任何鏈接或例子將不勝感激!
我很好奇的用例是在這裏。如果查詢無效,無論如何SQL都會返回一個錯誤......實際上,通過在腳本中執行的唯一方法是網絡連接時間。但是你在PHP解析查詢時產生的開銷中忽略了這種好處。 (DB服務器可以比PHP快得多解析它)。所有這些都說,你爲什麼需要這個? –
您想要驗證哪種SQL語法? –
嗨馬特,感謝您花一點時間回顧一下我的問題。我正在編寫一個將在查詢周圍生成PHP腳本的應用程序。當用戶編寫查詢時,他或她想檢查查詢是否有效,確定該行是否存在,當然還有語法,但不一定執行查詢。我們不希望查詢被執行的一個例子是如果查詢向數據庫添加了某些東西。我們只是希望它在不修改數據庫的情況下進行模擬。 –