PHPとmySQLとの接続について

PHPmySQLと接続する。-saka

$link = mysql_connect($url, $user, $pass);
$charset1 = mysql_set_charset( "UTF8", $link );
$db_selected = mysql_select_db($db, $link);

mySQLは無料レンタルサーバーの@pagesという場所のものを使わせてもらっています。
上のコードの$urlはデータベースの場所を指定します。@pagesでは"localhost"になっています。
$user, $passはそれぞれユーザーIDとパスワードを指定します。
mysql_connectというメソッドでデータベースと接続します。返ってくるのはリソース型という型の変数で、リソース型というのは外部のファイルとかデータベースと接続する時にそれぞれの接続を識別するためのIDみたいなものを持つ変数型だと思います。今回の$linkという変数を直接echoなどで出力すると「Resource id #8」みたいな文字列が表示されます。

このリソース型変数を引数に指定して、2行目mysql_set_charset( "UTF8", $link );では文字コードの設定をしています。3行目で同様にリソースを引数に指定してデータベースを選択するという処理を行っています。「mysql_select_db($db, $link);」サーバにはいくつもデータベースを作ることができ、データベースは複数テーブルを持つことができますが、まず接続するデータベースを選択する必要があるということです。
また、文字コード設定はデータベースを選択する前に行います。サーバとの間で文字コードを決めてしまい、データベース毎には決められないのだと思います。

【補足】
mysql_connect()の四番目の引数にtrueを指定すると、同じデータベースリンクを行う時に1回目のリンクを再利用する。
五番目の引数にMYSQL_CLIENT_SSLを指定するとSSLでデータをやりとりする。
データベースとの接続を閉じる時はmysql_close($link);

$sql = "SELECT COUNT(ngw) FROM ngword WHERE ngw = $value";
$result = mysql_query($sql, $link)

データの取得は上のようにmysql_queryというメソッドに引数でSQLとリソースを指定して取り出します。ただ、この時点で$resultに返ってくるのはまたリソース型の変数です。この辺りがよくわからないのですが、おそらくリソース型変数というのは接続の識別をするだけではないみたいです。
実際にデータを取り出す時は上のコードの続きに

$row = mysql_fetch_array($result);

このコードを書きます。mysql_fetch_arrayというのがリソースからデータを配列で取り出してくれるみたいです。
最後に接続をクローズするための記述をして終了。

$close_flag = mysql_close($link);

SQLなどはこれから勉強。

【補足】
sqlに変数を使う場合、上のほうでsqlを書いていますが、いくつか注意点があります。
まず、シングルクォーテーションは使えないということ。

○ $sql = "SELECT COUNT(ngw) FROM ngword WHERE ngw = $value";
× $sql = 'SELECT COUNT(ngw) FROM ngword WHERE ngw = $value';

変数を文字列として代入させる場合はダブルクォーテーションの中にいれるか、別物にして接続してあげないといけないみたいです。
もうひとつ注意点は、この変数の中にSQLで受け取れない文字が入る可能性がある場合はあらかじめケアしてあげないといけないということ。たとえば英語の「it's」みたいな文字列が変数に入ってきた場合に「'」がひっかかってエラーになります。
mysql_real_escape_string」という関数がエラーになりそうな文字をとっぱらってくれるので、ケアが必要なケースではあらかじめこいつをかましてやるといいです。
文字列は「'」で囲ってやらないといけないのでこんな感じになります。

$value = "'" . mysql_real_escape_string($value) . "'";
$sql = "SELECT COUNT(ngw) FROM ngword WHERE ngw = $value";

エスケープ文字の処理】
.mysql_real_escape_string($_POST["textarea"]).
データベースにはダブルクォーテーションなど、そのままでは登録できない文字がある。
PHPでは、そういう文字を自動的に¥記号をつけて登録できる形に整形してくれる関数があります。それが上のやつ。
これで登録した文字を取り出す時はまた自動的に¥記号をとりはずしてくれる関数もある。
stripslashes($rows["text"])

至れり尽くせり。