2011-07-24 29 views
0

基本的には、PHPを使用してSQL入力を受け取り、DB(MySQL)から返された結果を出力するページを作成したいと考えています。これは制作ウェブサイトではありません(私はセキュリティの意味を理解しています)。それは学習と実践のためのものです。 phpMyAdminのSQLコンソールセクションのようなもの、またはsqlzoo.netができるものと同様のもの(私は彼らがperlを使っていると思いますが、PHPでやりたいと思います)。これを実現する実践的な方法はありますか?PHPでSQLを入力してクエリの結果をページに出力

たとえば、クエリが返す列の数がわからない場合に、結果テーブルを表示するためにPHP/HTMLでページを作成するにはどうすればよいですか?

また、このWebページの訪問者が元のデータを使用してDBをデフォルト状態に復元できるようにする最も実際的な方法は何ですか? (たとえば、元の状態のSQLダンプを作成し、それを実行するボタンを作成するか、より良い方法がありますか?)

ありがとう!

+0

phpmyadminのソースを確認してください –

+0

私はソースが十分に大きいので、この特定のコードを見つけることは十分に難しく、それをあまり分かりにくいと確信しています。私はそれがどのように達成されているのか興味がありますが、コードを完全に取り除くつもりはありません。あなたはこれをしましたか? –

+0

いいえ、私はソースが少なくとも100倍または1000倍大きいプロジェクトで働いていました。私はそれを見つけるのに約2〜5分かかると思います。 –

答えて

1

使用*foreachmysql_fetch_row()またはmysql_fetch_assoc()から結果以上のすべての列とループをフェッチします。 それ以外に、あなたはmysql CLIを使うことを考えましたか?これらの要件には便利です。 この質問は今よりも具体的なものにする必要があります。

"元の状態のSQLダンプを作成し、それを実行するボタンを作成しますか?" - はい。ただし、既存のデータを削除/削除してください。

+0

提案をいただきありがとうございます。実際にはPhpMyAdminのSQL入力ボックスと同様にCLIを使用しています。学習の練習として、私がしようとしていることは、それらのリソースの機能をエミュレートするPHPのページを作ることです。 –

1

少なくとも2つのクエリを実行する必要があります。最初にLIMIT 1を使用して1行を返し、mysql $ row = fetch_row($ handle)を使用する場合はPHPのcount($ row)を使用して、列数をカウントし、SQL COUNT()を使用して戻される行数を調べることができます。

データを元の状態に戻すためには、あなたのようなダンプからのドロップ/レクリエーションは、最も簡単で信頼性の高いオプションかもしれないと思います。あなたのSQLクエリの

+0

あなたは列の数を確認するために2つのクエリを必要としません –

1

あなたの最善の選択肢は、行の量が0より大きいかどうかを確認している場合だけです。そうであれば、foreach内のクエリ結果セットをループして好きなものを表示してください。

関連する問題