54465


SQLを用いたプログラムを作成中なのですが、頻繁にエラーを出してしまいます。

普段PHPでエラーの確認をする際は、`file::log()`や`var_dump`を要所要所に入れ、どこが原因かを追究しています。

SQLを確認する際には何か効率の良い探し方はありますでしょうか？  
例えば

  * 実行したselect文を表示する
  * select以前に接続自体が正しく行われているのか否か  
の確認方法など


CC BY-SA 4.0
2019-04-23T07:12:19.220
54420
2019-04-25T03:04:47.407
31799
question
php mysql sql
作成中のプログラムのSQL挙動を確認したい


> ・実行したselect文を表示する

私のやり方ですが、生のSQLを自分たちで整形する必要がある場合はまずは直接SQLの操作をして  
そもそも使えるSQLなのかどうかを調査確認します。  
どのような開発環境でされているかはわかりませんが  
直接SQLの操作をする一番シンプルな方法としては、

**コンソールからmysqlコマンドで対話型のMySQLクライアントを立ち上げる**

という方法です。  
すべてのSQLを試すことができるのでアプリケーションで組み立てる前にSQLの整合性のチェックができます。  
<https://dev.mysql.com/doc/refman/5.6/ja/tutorial.html>

CUIに慣れていないということであれば[phpMyAdmin](https://www.phpmyadmin.net/)というツールでGUI操作でSQLを試すこともあります。

> select以前に接続自体が正しく行われているのか否か

どのドライバーをご利用になられているかはわからないですが、  
一般的なドライバーであれば接続チェックなどのメソッドやAPIは用意されているので  
それらでエラーチェックをするようにライブラリを構築していく必要があります。  
<https://php.net/manual/ja/set.mysqlinfo.php>

ただ全部のエラーチェックをするとコストは掛かるので、そこはプロダクトの方針とのバランスを取る必要があると思います。

あと根本的な話ですが、SQLやPHPのMySQLドライバを自分たちで操作＆構築は大変なのでPHPフレームワークを利用することも一つの手です。  
PHPフレームワークはMySQLのライブラリを用意してあり、さらにはアクティブレコードがあれば、直接SQLを操作することは少なくなるでしょう。またエラーハンドリングもほとんど実装してあります。  
フレームワークの選定については、何を解決したいのか？どのような制約があるか？で選定の条件は変わるのでここでは言及しないです。


CC BY-SA 4.0
2019-04-25T03:04:47.407
54465
2019-04-25T03:04:47.407
22665
54420
answer