2011-07-24 72 views
0

基本上我正在尋找使用PHP來創建一個頁面,該頁面將接收SQL輸入並輸出由DB(MySQL)返回的結果。這不是一個生產網站(我瞭解安全含義)。這更多的是學習和練習。有點像phpMyAdmin的SQL控制檯部分,甚至類似於sqlzoo.net可以做的(我認爲他們使用的是perl,但我想用PHP來完成)。有沒有一種切實可行的方法來實現這一點在PHP中輸入SQL輸入並將查詢結果輸出到頁面

例如,我不知道查詢返回多少列時,如何在PHP/HTML中創建頁面以顯示結果表?

此外,允許訪問者訪問此網頁的最實用方法是使用原始數據將數據庫恢復到默認狀態? (例如創建一個原始狀態的SQL轉儲並創建一個運行它的按鈕?或者有更好的方法嗎?)

謝謝!

+0

檢查phpmyadmin的來源 –

+0

哈哈有趣的想法,雖然我確信源足夠大,找到這個特定的代碼會很難,更不用理解它。不想完全撕掉他們的代碼,雖然我會好奇看看它是如何完成的。你做過了嗎? –

+0

不可以,但是我的項目來源至少是100或1000倍,所以......我想大概需要2-5分鐘才能找到它。 –

回答

1

使用*在您的SQL查詢從mysql_fetch_row()mysql_fetch_assoc()foreach獲取在結果中的所有列和循環。 除此之外,你有沒有想過使用mysql CLI?這對這些要求很有用。 這個問題應該比現在更具體。

「創建原始狀態的SQL轉儲並創建一個運行它的按鈕?」 - 是的。但請確保您刪除/刪除現有數據。

+0

感謝您的建議,實際上我已經使用CLI以及PhpMyAdmin中的SQL輸入框......並且出於實踐目的,這些工作非常棒。作爲一種學習練習,我想要做的是在PHP中創建一個模擬這些資源功能的頁面。 –

1

您可能必須運行至少兩個查詢...首先使用LIMIT 1返回一行,並計算返回的元素(如果使用mysql $ row = fetch_row($ handle),則使用PHP count($ row))對列進行計數,並且可以使用SQL COUNT()來查找將返回多少行。

至於將數據返回到原始狀態,我認爲從像你說的轉儲丟棄/重新創建可能是最簡單和最可靠的選擇。

+0

你不需要兩個查詢來檢查列數 –

1

你最好的選擇是運行查詢,檢查行數大於0,然後如果是,循環遍歷查詢結果集在foreach中,只顯示任何你喜歡的。