テーブルに商品データを追加する 

SQL文にて商品データを追加する。

商品名と価格を入力して、データベースにそのデータを追加します。

そのためには例えば下記のような形でデータベース「shop」を指定しSQLタブを開きSQL文を書きます。

insert into product values(null, ‘きゅうり’ , 100);insert文にて指定したテーブルに対して新しい行を追加することができます。values()を使って新しい行に設定する列の値を入れます。自動的に割り当てられるid列の値はnullとしています。nullは値が未設定であることを示します。

上記のようなSQL文を入力をして実行すると、下記のようにproductテーブルの末尾に追加されます。

挿入タグを使ってデータを追加する

下記のようなテーブルの中にデータを追加したいときには、挿入タグをクリックします。

nameににんじん、priceに190と入力します。idには入力しなくても、自動で付与されるように設定しています。()

すると下記のような画面になり、追加されたことが表示されます。表示タグをクリックし、確認してみましょう。

確認してみましょう。データが追加されてますね。

入力画面から商品データを追加してみよう

insert-input.php

<?php require ‘header.php’; ?>

<p>商品データを追加します</p>
<form action=”user-output.php” method=”post”>
商品名<input type=”text” name=”name”>
価格<input type=”text” name=”price”>
<input type=”submit” value=”追加”>
</form>
<?php require ‘footer.php’; ?>

次に上記で入力した商品名と価格を使って、データベースに商品データを追加するPHPスクリプトを作成しましょう。

user-output.php

<?php require ‘header.php’; ?>

<?php
$pdo = new PDO(‘mysql:host=localhost;dbname=shop;
charset=utf8′,’staff’,’password’);
$sql = $pdo->prepare(‘insert into product values(null, ?, ?)‘);
if($sql->execute([$_REQUEST[‘name’],$_REQUEST[‘price’]])){
    echo ‘追加できました’;
}else {
    echo ‘追加できませんでした’;
}
?>
<?php require ‘footer.php’; ?>
入力フォームで値を設定したい部分は「?」にしてあります。ここではnameとpriceです。

executeメソッドは成功するとTRUE、失敗するとFALSEを返します。

試しに下記内容を追加してみます。

phpMyadminで商品一覧を確認すると、テーブルの最後に「やきそば」が追加されているのがわかります。

入力値を確認してからデータを追加する

ユーザーが入力した値が適切かどうかを確認して、追加されるようにします。

user-output.php

<?php require ‘header.php’; ?>

<?php
$pdo = new PDO(‘mysql:host=localhost;dbname=shop;
charset=utf8′,’staff’,’password’);
$sql = $pdo->prepare(‘insert into product values(null, ?, ?)’);
if (empty($_REQUEST[‘name’])){
    echo ‘商品名を入力してください’;
} else
if (!preg_match(‘/^[0-9]+$/’, $_REQUEST[‘price’])){
echo ‘価格は整数で入力願います。’;

} else
if($sql->execute([htmlspecialchars($_REQUEST[‘name’]),
$_REQUEST[‘price’]]
)){
 echo ‘追加できました’;
}else {
echo ‘追加できませんでした’;
}
?>
<?php require ‘footer.php’; ?>
empty関数は引数として指定された値が空の時にTRUEを返します。

preg_match関数は第一引数に正規表現内容を、第二引数に指定した値が該当するかを調べます。「!」は条件を反転させます。+は直前の文字が1個以上のことを意味します。

htmlspecialchars関数はHTMLタグを無効化させ、無用なプログラムをいれさせないようにします。
例えば、商品名を入れないで追加をしようとすると・・・
スクリプト通り「商品名を入力してください」と表示されました。
価格を整数で入力しないと・・・
スクリプト通り「価格は整数で入力願います」と表示されました。
PHPについて

この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。


短期間でのレベルアップにはプロから学ぶのもありです。

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援