初めてのおつかい
Windows2000Server+Apache2.2.4
+MySQL5.0.45+PHP5.2.5

初めての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

 さくらインターネット