$変数 = $pdo->exec( クエリー );返り値は、更新されたレコード数を示すint値になります。execは、データの追加以外にもいろいろと莉桜しますので、「どれだけのレコードが更新されたか」がわかるようになっているのですね。何も変わらなければ返り値はゼロになります。
"insert into テーブル (カラム名1, カラム名2, ……)insert文の書き方は他にもありますが、これが一番わかり易いでしょう。「insert into テーブル」の後に、()で値を設定するコラム名をカンマで続けて記述し、その後に「values」をつけて、また()内に値をカンマで続けて記述します。このとき、コラム名の()と値の()に記述する内容は、並び順が揃うようにします。
values ( 値1, 値2, ……)"
$name = htmlspecialchars($_POST['name']);これらの値をまとめてクエリー文を作成し、execします。クエリー文は、上の値をまとめて以下のように作成しています。
$mail = htmlspecialchars($_POST['mail']);
$tel = htmlspecialchars($_POST['tel']);
$memo = htmlspecialchars($_POST['memo']);
$query = "insert into sampletable (name,mail,tel,memo)idの値は不要なので、4つのカラムの値をまとめておきます。これをexecすれば、レコードが追加されます。後は、index.phpにリダイレクトして一覧表示すれば、追加されたレコードが表示されるはずです。
values ('$name','$mail','$tel','$memo')";
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※index.phpのソースコード
<?php
$result = "";
try {
$pdo = new PDO("mysql:host=localhost;dbname=mysampledata;charset=utf8",
"root","");
$statement = $pdo->query("select * from sampletable");
while($record = $statement->fetch(PDO::FETCH_ASSOC)){
$result .= "<tr>";
foreach($record as $column){
$result .= "<td>" . $column . "</td>";
}
$result .= "</tr>";
}
} catch(PDOException $e){
$result = "#ERR:" . $e->getMessage();
}
$pdo = null;
?>
<!doctype html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<title>sample page</title>
<style>
h1 { font-size:14pt;
padding:5px;
background-color:#AAFFFF; }
table tr td {
padding:5px;
background-color:#DDFFCC; }
</style>
</head>
<body>
<h1>Hello PHP!</h1>
<table>
<form method="post" action="./add.php">
<tr><td>NAME:</td><td><input type="text" name="name"></td></tr>
<tr><td>MAIL:</td><td><input type="text" name="mail"></td></tr>
<tr><td>TEL:</td><td><input type="text" name="tel"></td></tr>
<tr><td>MEMO:</td><td><textarea name="memo"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="送信"></td></tr>
</form>
</table>
<hr>
<table>
<?php echo $result; ?>
</table>
</body>
</html>
※add.phpのソースコード
<?php
$name = htmlspecialchars($_POST['name']);
$mail = htmlspecialchars($_POST['mail']);
$tel = htmlspecialchars($_POST['tel']);
$memo = htmlspecialchars($_POST['memo']);
try {
$pdo = new PDO("mysql:host=localhost;dbname=mysampledata;charset=utf8",
"root","");
$query = "insert into sampletable (name,mail,tel,memo)
values ('$name','$mail','$tel','$memo')";
$pdo->exec($query);
} catch(PDOException $e){
echo "<html><body><h1>ERR:" . $e->getMessage() + "</h1></body></html>";
}
$pdo = null;
header('Location: index.php');
| << 前へ | 次へ >> |