PHP 『 超 』 初心者勉強会(PHPでMySQL) 7回目に参加して来ました。


7回目。今回はUPDATEでテーブルの書き換え。

title_update_form.phpへのアクセス時にGETでフォームに初期値を与えて、ユーザーは必要な所を書き換えてsubmitを押すと、POSTでtitle_update_commit.phpに値を送る。title_update_commit.phpはSQL文を送信し、書き換える。

title_update_form.php

[sourcecode language=”php”]
<?php

// headerの出力
header("Content-type: text/html; charset=utf-8");

// MySQLに接続する
$con = mysql_connect( ‘localhost’, ‘sample’, ‘123456’ );

// データベースの選択
mysql_select_db( ‘sample’, $con );

// 文字コードの設定
mysql_query( ‘SET NAMES utf8’ ); // Shift JIS = sjis, EUC JP = ujis

//GETの取得
$title_id = $_GET[‘title_id’];
$title_id = mysql_real_escape_string($title_id);

// SQLの送信
$res = mysql_query( " SELECT * FROM t_title WHERE title_id =$title_id ", $con );

// レコードを取得
$record = mysql_fetch_assoc($res);
var_dump($record);

// エラーを出力
echo mysql_error($con);

?>
<html>
<head>
<title></title>
</head>
<body>
<h1>タイトルの変更フォーム</h1>

<form method="post" action="title_update_commit.php">

<input type="_hidden" name="title_id" value="<?php echo $record[‘title_id’] ?>" />
<input type="name" name="title" value="<?php echo $record[‘title’] ?>" />
<input type="submit" name="" value="変更" />

</form>

</body>
</html>
[/sourcecode]

title_update_commit.php

[sourcecode language=”php”]
<?php

// headerの出力
header("Content-type: text/html; charset=utf-8");

// MySQLに接続する
$con = mysql_connect( ‘localhost’, ‘sample’, ‘123456’ );

// データベースの選択
mysql_select_db( ‘sample’, $con );

// 文字コードの設定
mysql_query( ‘SET NAMES utf8’ ); // Shift JIS = sjis, EUC JP = ujis

//POSTの取得
$title_id = $_POST[‘title_id’];
$title = $_POST[‘title’];
$title_id = mysql_real_escape_string($title_id);
$title = mysql_real_escape_string($title);

// SQLの送信
$res = mysql_query( "UPDATE t_title SET title=’$title’ WHERE title_id=$title_id ", $con );
//mySQLでは内容が同じ文字列でUPDATEしても、update_timeは更新されない。

// エラーを出力
echo mysql_error($con);

exit;

$val = mysql_real_escape_string($val);
$res = mysql_query($sql, $con);
$err = mysql_errno($con);
$str = mysql_error($con);
$row = mysql_num_rows($res);
$row = mysql_affected_rows($con);
$id = mysql_insert_id($con);

[/sourcecode]