ホーム » スタッフ » 斉藤徹 » 講義録 » 創造工学演習 » 創造工学演習・予備実験(SQLとPHP)

2018年4月
« 3月   5月 »
1234567
891011121314
15161718192021
22232425262728
2930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

創造工学演習・予備実験(SQLとPHP)

先週のPHPの予備実験に引き続き、データベースの説明とそのプログラムで演習を行う。

<?php
// データの保存先
$dbfile = "/home/guests/guest0/public_data/tsaitoh.db" ;

if ( !file_exists( $dbfile ) ) {
   // データベースの宣言と初期化
   $db = new SQLite3( $dbfile ) ;
   $cmd = "create table nametel ( name char( 20 ) , phone char( 20 ) ) ;"
        ."insert into nametel ( name , phone ) values ( 't-saitoh' , '090-1111-1111' ) ;"
        ."insert into nametel ( name , phone ) values ( 'tomoko' , '090-2222-2222' ) ;"
        ."insert into nametel ( name , phone ) values ( 'mitsuki' , '090-3333-3333' ) ;"
        ."insert into nametel ( name , phone ) values ( 'ayuka' , '090-4444-4444' ) ;"
        ;
   if ( $db->exec( $cmd ) ) {
      print "Success.\n" ;
   } else {
      print "Fail\n" ;
   }
   $db = null ;
}
?>
<html>
<head>
<title></title>
</head>
<body>

<?php
// 警告表示の抑止
ini_set( 'error_reporting' , E_WARNING ) ;

// データベース処理(検索処理)
$db = new SQLite3( $dbfile ) ;
$id = $_REQUEST[ "name" ] ;
if ( $db !== FALSE && $id != "" ) {
   // SQL命令の生成(インジェクションの危険性指摘は別述)
   $cmd = "select * from nametel where name='$id' ;" ;
   print $cmd ;
   // 問い合わせの実行
   $result = $db->query( $cmd ) ;
   print "<table border='1'>\n" ;
   print "<tr><td>name</td><td>phone</td></tr>" ;
   while( ($row = $result->fetchArray( SQLITE3_BOTH )) !== FALSE ) {
      print "<tr>"
         ."<td>".$row[0]."</td>"
         ."<td>".$row[1]."</td>"
         ."</tr>\n" ;
   }
   print "</table>\n" ;
}
?>

<form method="post" action="sql.php">
<input type="text" name="name" />
<input type="submit" value="exec" />
</form>

<?php
// データベース登録処理
$newname = $_REQUEST[ "newname" ] ;
$newphone = $_REQUEST[ "newphone" ] ;
if ( $newname != "" && $newphone != "" ) {
   // データ登録用SQL
   $cmd = "insert into nametel ( name , phone ) values ( '$newname' , '$newphone' ) ;" ;
   // データ登録
   $db->exec( $cmd ) ;
      print "$newname さんの電話番号 $newphone を登録しました" ;
   }
?>

<form method="post" action="sql.php">
<input type="text" name="newname" />
<input type="text" name="newphone" />
<input type="submit" value="exec" />
</form>

</body>
</html>