初めてのWindows2000Server + Apache2.2.4 + MySQL5.0.45 + PHP5.2.5 その3
|
|
|
|
|
|
|
|
練習その1
|
- MySQLで基本のデータベースを作って、
HTML&PHPを使ってブラウザに表示させる。
|
- MySQLで以下のデータベース・テーブルを作成。
データベース名 AAAAA
テーブル名 AAAAA_tbl primary key(id)
フィールド名・値 id int not null auto_incriment 、 name
char(30) not nul
- データベースに仮のデータ2〜3人分入れておく。
(insert into)
- PHP作成。「test.php」で保存。
<html><body>
<?PHP
//MySQLに接続
if(!$con=mysql_connect("localhost","ユーザ名","設定パスワード")){
echo"MySQLの接続エラー";
exit;
}
// DBに接続
if(!mysql_select_db("AAAAA",$con)){
echo"DBの接続エラー";
exit;
}
//選択SQL
if(!$res=mysql_query("select id,name from AAAAA_tbl")){
echo "SQLエラー";
exit;
}
//表示SQL
while($row=mysql_fetch_array($res)){
echo "id=".$row["id"];
echo " name=".$row["name"];
echo "<br>";
}
mysql_free_result($res);
//MySQL切断
mysql_close($con);
?>
</body></html>
- ブラウザで「http://localhost/test.php」を実行。
|
|
|
|
|
|
|
|
練習その2
|
- HTMLで入力を作って、
PHPにデータを渡し、ブラウザに表示。
|
- HTML作成。「test2.html」で保存。
<html><body>
<form action="test2.php" method="post">
名前:<input type="text" name="NM">
<input type="submit" name="submit" value="実行">
</form>
</body></html>
- PHP作成。「test2.php」で保存。
<html><body>
<?PHP
$NM = $_POST['NM'];
echo "<BR>".$NM;
?>
</body></html>
- ブラウザで「http://localhost/test2.php」を実行。
|
|
|
|
|
|
|
|
練習その3
|
- HTMLで入力を作って、
PHPにデータを渡してSQL文を作らせ、
MySQLで実行。
テーブルにデータを追加させる。
|
- MySQLで以下のデータベース・テーブルを作成。
データベース名 AAAAA
テーブル名 AAAAA_tbl2 primary key(id)
フィールド名・値 id int not null auto_incriment 、 name
char(30) not nul 、 age int
- HTML作成。「test3.html」で保存。
<html><body>
<form action="test3.php" method="post">
名前:<input type="text" name="NM">
年齢:<input type="text" name="AGE">
<input type="submit" name="submit" value="登録">
</form>
</body></html>
- PHP作成。「test3.php」で保存。
<html><body>
<?PHP
//MySQLに接続
if(!$con=mysql_connect("localhost","ユーザ名","設定パスワード")){
echo"MySQLの接続エラー";
exit;
}
// DBに接続
if(!mysql_select_db("AAAAA",$con)){
echo"DBの接続エラー";
exit;
}
//***
//***
//変数を扱いやすく
$NAM = $_POST['NM'];
$AGE = $_POST['AGE'];
//データ追加SQL
$sql = "insert into tsumiki_tbl(name,age) values('$NAM',$AGE)";
if(!$res=mysql_query($sql)){
echo"SQLエラー";
exit;
}
//DB切断
mysql_close($con);
//完了メッセージ出力(&元データの確認)
echo $_POST['NM'],":登録完了";
?>
</body></html>
- ブラウザで「http://localhost/test2.php」を実行。
実行結果はMySQLのコンソールで確認を。
(select * from)
|
|
|
|
|
|
|
|
トラブル発生!!
|
|
- 実行すると、半角英数字の名前はokだが、日本語名だとエラーが発生。
ってことはエンコードの問題???
あせあせΣ(゚Д゚;≡;゚д゚)オタオタとググること2日間。
こちら(PHPpro!Q&A掲示板)とこちら(MyNA)の情報を元にして設定の見直しとPHPの追加を。。。
- php.iniの修正
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
;mbstring.encoding_translation = On
を
;mbstring.encoding_translation = On
に。
- 上で作成したtest3.phpの「//***」の部分に以下を追加。
//エンコードをシフトJISに指定
if(!$res=mysql_query("set names sjis")){
echo"追加SQLエラー";
exit;
}
- これでなんとかうまくいったみたい。
|
|
|
|
|
|
|
Back Next |