どちらのSQL文の方がいいのでしょうか?

どちらのSQL文の方がいいのでしょうか? ※phpでmysqlを操作しています。 ① $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); $db_selected = mysql_select_db('DB名', $link); ② $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); mysql_select_db('DB名', $link); 質問 1、$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); この場合、DB接続を$link変数に入れている処理ですよね? つまり、この後で$linkを表示させない限り、DB接続はなされないイメージなんですけど、 既に$link変数に入れた時点でmysql_connect('localhost', 'mysql_user', 'mysql_password'); この処理が完了しているのはなぜでしょうか? 2、①と②とどちらの方がいいのでしょうか?片方の本には、①が書いてあって、もう片方の本には②が書いてありました。 3、ちなみに、①の場合は$db_selectedという変数を製作していますが、この後、この変数を一回も使用していません。 それでも変数を製作する必要があるのでしょうか?製作した方がいいのでしょうか? すいません、教えて下さい。

PHP242閲覧

ベストアンサー

0

>DB接続を$link変数に入れている処理ですよね? >つまり、この後で$linkを表示させない限り、DB接続はなされないイメージなんですけど、 違います。mysql_connectの戻り値をマニュアルで確認してください。 RTFM. http://jp.php.net/manual/ja/function.mysql-connect.php ----- 引用ここから 返り値 成功した場合に MySQL リンク ID を、失敗した場合に FALSE を返します。 ----- 引用ここまで つまりDB接続を『実行して』得たリンクIDです。逆に「$linkを表示させる」ことに何の意味もありません。表示することによって何か実行されるようだと怖くてechoなんか出来ません。 mysql_select_dbの戻り値はboolean(実行が成功したか失敗したか)です。 http://jp.php.net/manual/ja/function.mysql-select-db.php or die で済ませられるので、戻り値を変数に代入する必要はありません。変数に入れてもその値をチェックしないのであれば無駄になります。 なお、ほとんどのMySQL関数はリンクIDを省略可能(直近のmysql_connectのリンクIDを使う)ですので、テストスクリプトを書くときなどは手抜きして下記のような書き方もします(汗 mysql_connect('localhost', 'mysql_user', 'mysql_password') or die('cannot connect'); mysql_select_db('DB名') or die('db_select abort');

ThanksImg質問者からのお礼コメント

早速ながら大変わかりやすいご回答有難うございました。

お礼日時:2012/4/28 9:36