今日わ風紀委員榎本行宏はダーツ投げた。

ブルに二回ぐらい入った。
(*ω*)

明日は休んだときの授業の内容をメールで空手家Sくんからもらったのでそれを勉強しよう。
カラテカSくんからメールでもらった授業の内容は以下です。




お疲れ様です。
遅くなってすみません。
トリガを作成するとテーブルに対してデータの追加や更新などが行われた場合に、自動的に別のSQL文を実行するように設定することができます。

例:delimiterはtriggerの含まれる文の直前と直後に

mysql > create table tb1m select * from tb1;

(テーブルtb1の全てを持ってきたテーブルtb1mを作成。中身はtb1。)

mysql > create table tb2m like tb1;

(テーブルtb1の構造のテーブルtb2mを作成。中身は空。)

delimiter //

(mysql文の終わりを;から//に変更。)

mysql > create trigger tr1 before update on tb1m for each row

-> begin

-> insert into tb2m values(old.bang,old.nama,old.toshi,old.umare);

(ここでinsert文が実行されないように上でdemiliterでmysql文の終わりを変えてます。)

-> end

-> //

mysql > delimiter ;

(mysql文の終わりを//から;に変更。)

mysql > update tb1m set bang='A106',nama='hoge',toshi=31,umare='Japan' where bang='A106';

mysql > select * from tb1m;

mysql > select * from tb2m;

transaction ⇒ トランザクションは、複数のユーザーが同時にデータベースを操作する状況において、データベースに対する複数の操作(選択、更新、削除など)を実行している途中で仮にエラーが発生したとしても、データの不整合が起きないことを保証するリレーショナルデータベースシステム(RDBMS)のメカニズムです。 start transactionとsql文を記述することで、その後実行される複数の操作は、どの操作もいったん仮の状態で実行され、正常な実行の確認にとどまります。この段階では、データベースにデータの変更は反映されません。
commit ⇒ トランザクションの確定を指示し、それまで仮の状態だった変更操作が、一気にデータベースへ反映されます。この処理を、「コミット処理」と呼びます。
rollback ⇒ 何らかの理由でデータベースの変更が不可能である場合に、それまでのトランザクション中のすべての操作を中止し、元の状態に戻します。この処理を「ロールバック処理」と呼びます。
例:修正(ここではinsert文)で間違いない場合、そのままcommit

mysql > start transaction;  

mysql > insert into tb values(bang='A101',nama='hogejirou',toshi=31,umare='Japan');

mysql > commit;

 

例:修正(ここではdelete文)を取り消したい場合、rollback

mysql > start transaction;  

mysql > delete from tb;

mysql > rollback;

mysql > commit;

一応、こんな感じです。

詳しくは下記サイトで説明してくれてるっぽいです。

http://www.atmarkit.co.jp/ait/articles/0210/24/news001.html

2015年3月6日 22:54 榎本行宏 :
こんばんわー。
えのちゃん今日休んだから今日の授業でやったsql文をgmailで送れたら送ってほしいー。




2014年12月15日月曜日、カラテカSさんは書きました:

ソースありがとうございます。
phpがんばっていきましょう。

2014年12月15日 13:36 榎本行宏 :
<?php
/*
function 関数名(引数1,引数2){
	処理;
}
strはstringの 略
各ページに書く。←init.phpに移した。
requireはlink relのようなもの。ファイルを読み込む。
*/
require_once dirname(__FILE__).'/init.php';




//var_dump($_SESSION);
//初期化
$name = '';
$email = '';
$message = '';
if(!empty($_SESSION)){//emptyは組み込み関数
	$name= $_SESSION['name'];
	$email = $_SESSION['email'];
	$message = $_SESSION['message'];
}


?>



<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>お問い合わせ入力フォーム</title>
</head>

<body>
<div id="container">
<h1>お問い合わせ入力フォーム</h1>

<form action="check.php" method="post" id="mailform">
<p><label for="name"> お名前:&nbsp;&nbsp;<span>*必須</span>&nbsp;&nbsp;30文字以内</label>
<input type="text" name="name" id="name" size="30" placeholder="例:白水桜太郎"  maxlength="30" value="
<?php print h($name);?>
"></p>


<p><label for="email">email:&nbsp;&nbsp;<span>*必須</span>&nbsp;&nbsp;50文字以内</label>
<input type="text" name="email" id="email" size="50" placeholder="例:sampler@sample"  maxlength="50" value="
<?php print h($email);?>
"></p>
<p><label for="message">お問い合わせ:&nbsp;&nbsp;<span>*必須</span>&nbsp;&nbsp;128文字以内</label></p>
<textarea name="message" id="message" cols="30" rows="5" placeholder="例:御社商品の資料請求を致します。" maxlength="128">
<?php print h($message);?></textarea>
<p><input type="submit" value="確認"></p>
</p>
</form>

</div>

</body>
</html>

<?php
/*
function 関数名(引数1,引数2){
	処理;
}
strはstringの 略
*/
require_once dirname(__FILE__).'/init.php';






if(empty($_POST)){
	header('Location:http://localhost/yukihiroenomoto9/0818mail/index.php');//headerファイル自体を管理する所。設定情報redirection
	exit;
}
//とりあえずフォームからデータがわたってきてるかテスト
//var_dump($_POST);
$name= $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];


$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['message'] = $_POST['message'];

?>


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>入力確認</title>
</head>

<body>
<h1>入力確認</h1>
<table border="1">
<tr>
<th>お名前:</th><td>
<?php
print h($name);
?>
</td>
</tr>
<tr>
<th>メール:</th><td>
<?php
print h($email);
?>
</td>
</tr>
<tr>
<th>メッセージ:</th><td>
<?php
print nl2br(h($message));
?>
</td>
</tr>
</table>
<p><a href="index.php" >戻る</a>&nbsp;&nbsp;<a href="thanks.php">送信</a></p>

</body>
</html>

<?
/*
function 関数名(引数1,引数2){
	処理;
}
strはstringの 略
*/
require_once dirname(__FILE__).'/init.php';







//とりあえずフォームからデータがわたってきてるかテスト
//var_dump($_SESSION);
$name= $_SESSION['name'];
$email = $_SESSION['email'];
$message = $_SESSION['message'];

$to =  'yukihiroenomoto666@gmail.com';
$subject = 'お問い合わせメール';
//ヒアドキュメント
$body =<<<BODY
[お問い合わせメール]
以下の内容で承りました。
お名前:
{$name}
メールアドレス:
{$email}
メッセージ:
{$message}
BODY;

//確認
//echo $to.'<br>';
//echo $subject.'<br>';
//echo $body.'<br>';   


//mb_send_mail メールを送る
//第一引数メール送信先
//第二引数表題
//第三引数本文
mb_send_mail($to,$subject,$body);

?>



<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>送信確認</title>
</head>

<body>
<h1>送信確認</h1>
<table border="1">
<tr>
<th>お名前:</th><td>
<?php
print h($name);
?>
</td>
</tr>
<tr>
<th>メール:</th><td>
<?php
print h($email);
?>
</td>
</tr>
<tr>
<th>メッセージ:</th><td>
<?php
print nl2br(h($message));
?>
</td>
</tr>
</table>

<p>上記の内容で送信しました。送信ありがとうございます。<br><a href="index.php">トップへ戻る</a></p>
</body>
</html>

<?php
/*
function 関数名(引数1,引数2){
	処理;
}
strはstringの 略
各ページに書く。
*/
function h($str){
	return htmlspecialchars($str, ENT_QUOTES,'utf-8');
}

session_start();//テスト出る
session_regenerate_id(true);//IDを再生
?>





おっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱいおっぱい//テスト出る