Latest web development tutorials
×

PHP コース

PHP コース PHP 簡単な紹介 PHP インストール PHP 文法 PHP 変数 PHP echo/print PHP データの種類 PHP 定数 PHP 文字列 PHP 演算子 PHP If...Else PHP Switch PHP 配列 PHP 配列のソート PHP スーパーグローバル PHP While 循環 PHP For 循環 PHP 関数 PHP マジック変数 PHP 名前空間 PHP オブジェクト指向の

PHP フォーム

PHP フォーム PHP フォーム認証 PHP フォーム - 必要なフィールド PHP フォーム - 確認メールおよびURL PHP 完全なフォームインスタンス PHP $_GET 変数 PHP $_POST 変数

PHP 応用チュートリアル

PHP 多次元配列 PHP 日付 PHP 含みます PHP ファイル PHP ファイルのアップロード PHP Cookie PHP Session PHP E-mail PHP セキュリティ E-mail PHP Error PHP Exception PHP フィルタ PHP 高度なフィルタ PHP JSON

PHP 7 新機能

PHP 7 新機能

PHP データベース

PHP MySQL 簡単な紹介 PHP MySQL 接続 PHP MySQL データベースの作成 PHP MySQL データテーブルを作成します。 PHP MySQL データを挿入 PHP MySQL 複数のデータの挿入 PHP MySQL プリペアドステートメント PHP MySQL データを読みます PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX 簡単な紹介 AJAX PHP AJAX データベース AJAX XML AJAX 実時間探索 AJAX RSS Reader AJAX 投票

PHP リファレンスマニュアル

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP 画像処理 PHP RESTful

PHP MySQLは、複数のデータを挿入します

複数のデータを挿入するMySQLiをとPDOのMySQLを使用します

mysqli_multi_query()関数は、複数のSQL文を実行するために使用されます。

次の例では、「MyGuests」テーブルに3新しいレコードを追加されています。

例(MySQLiを - オブジェクト指向)

<?PHPの
$サーバー名= "localhost"を。
$ユーザ名= "ユーザ名";
$パスワード= "パスワード";
$ DBNAME = "MYDB」。

//リンクを作成
$コン=新しいmysqliの($のサーバー名、$ユーザ名、$パスワード、$ dbnameは);
//チェックリンク
場合($ conn-> connect_error){
死ぬ( "接続に失敗しました:"。$ conn-> connect_errorを)。
}

$のSql = "MyGuests。INSERT INTO(ファーストネーム、姓、電子メール)
VALUES( 'ジョン'、 'ドゥ'、 '[email protected]'); ";
$ SQLの。= "MyGuests。INSERT INTO(ファーストネーム、姓、電子メール)
VALUES( 'メリー'、 '萌え'、 '[email protected]'); ";
$ SQLの。= "MyGuests。INSERT INTO(ファーストネーム、姓、電子メール)
VALUES( 'ジュリー」、「ドゥーリー'、 '[email protected]') ";

場合($ conn-> multi_queryの($ sqlを)=== TRUE){
「新しいレコードが正常に挿入されている "エコー;
}エルス{
。エコー "エラー:" $ SQL」<BR> "$ conn->エラー; ..
}

$ Conn->クローズ();
?>

ノート 各SQL文はセミコロンで区切らなければならないことに注意してください。

例(MySQLiを - プロセス指向)

<?PHPの
$サーバー名= "localhost"を。
$ユーザ名= "ユーザ名";
$パスワード= "パスワード";
$ DBNAME = "MYDB」。

//リンクを作成
$コン= mysqli_connect($のサーバー名、$ユーザ名、$パスワード、$ dbnameは);
//チェックリンク
{(!$ CONN)の場合
(「接続に失敗しました: "mysqli_connect_error())死にます。
}

$のSql = "MyGuests。INSERT INTO(ファーストネーム、姓、電子メール)
VALUES( 'ジョン'、 'ドゥ'、 '[email protected]'); ";
$ SQLの。= "MyGuests。INSERT INTO(ファーストネーム、姓、電子メール)
VALUES( 'メリー'、 '萌え'、 '[email protected]'); ";
$ SQLの。= "MyGuests。INSERT INTO(ファーストネーム、姓、電子メール)
VALUES( 'ジュリー」、「ドゥーリー'、 '[email protected]') ";

{(mysqli_multi_query($ CONN、$ sqlを))の場合
「新しいレコードが正常に挿入されている "エコー;
}エルス{
。エコー "エラー:" $ sqlを「<BR>」mysqli_error($ CONN); ..
}

mysqli_close($ CONN)。
?>


(PDO)の例

<?PHPの
$サーバー名= "localhost"を。
$ユーザ名= "ユーザ名";
$パスワード= "パスワード";
$ DBNAME = "myDBPDO";

{しよう
$コン=新しいPDO( "mysqlの:ホスト= $サーバー名; dbnameに= $ dbnameに"、$ユーザ名、$パスワード);
//例外にPDOのエラーモードを設定します。
$ Conn->のsetAttribute(PDO :: ATTR_ERRMODE、PDO :: ERRMODE_EXCEPTION)。

トランザクションを開始します//
$ Conn->のbeginTransaction();
// SQL文
$ Conn->のexec( "(MyGuests。INSERT INTOファーストネーム、姓、電子メール)
VALUES( 'ジョン'、 'ドゥ'、 '[email protected]') ");
$ Conn->のexec( "(MyGuests。INSERT INTOファーストネーム、姓、電子メール)
VALUES( 'メリー'、 '萌え'、 '[email protected]') ");
$ Conn->のexec( "(MyGuests。INSERT INTOファーストネーム、姓、電子メール)
VALUES( 'ジュリー」、「ドゥーリー'、 '[email protected]') ");

//トランザクションをコミット
$ Conn->(コミット)。
「新しいレコードが正常に挿入されている "エコー;
}
キャッチ(PDOExceptionます$ e)の
{
//ロールバックが失敗した場合
$ Conn->ロールバック();
..エコー$ sqlを「<BR> "は$ e-> getMessage()の;
}

$コン= nullを。
?>



プリペアドステートメントを使用します

mysqli拡張は、ステートメントを挿入するための第2の方法を提供します。

私たちは、文とバインドされたパラメータを用意しました。

MySQLの拡張は、mysqlデータベースへのステートメントまたはクエリせずにデータを送信することができます。 あなたは列に関連付けるか、「バインド」変数をすることができます。

例(プリペアドステートメントを使用して、MySQLiを)

<?PHPの
$サーバー名= "localhost"を。
$ユーザ名= "ユーザ名";
$パスワード= "パスワード";
$ DBNAME = "MYDB」。

//接続を作成します。
$コン=新しいmysqliの($のサーバー名、$ユーザ名、$パスワード、$ dbnameは);
//接続のテスト
場合($ conn-> connect_error){
死ぬ( "接続に失敗しました:"。$ conn-> connect_errorを)。
}エルス{
$のSql = "MyGuests値にINSERT(?,, ??)」。

//()初期化ステートメントオブジェクトをし、mysqli_stmt_prepareするには
$のstmt = mysqli_stmt_init($ CONN)。

//準備ステートメント
であれば(し、mysqli_stmt_prepare($のstmtは、$ sqlを)){
//バインドパラメータ
mysqli_stmt_bind_param($ stmtは、「SSS」は、$ FIRSTNAME、$の姓、$メール)。

//パラメータを設定し、実行します
$ファーストネーム= 'ジョン';
$姓= 'ドウ';
$メール= '[email protected]';
mysqli_stmt_execute($ののstmt);

$ファーストネーム= 'メリー';
$姓= '萌え';
$メール= '[email protected]';
mysqli_stmt_execute($ののstmt);

$ファーストネーム= 'ジュリー';
$姓= 'ドゥーリー';
$メール= '[email protected]';
mysqli_stmt_execute($ののstmt);
}
}
?>

私たちは、問題に対処するためのモジュラーを使用して、上記の例で見ることができます。 私たちは、簡単に読んだり管理のためのコードのブロックを作成することができます。

バインドされたパラメータに注意してください。 それでは、mysqli_stmt_bind_paramで()のコードを見てみましょう:

mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);

バインディングクエリの引数とは、データベースにパラメータを渡します。 2番目のパラメータは、「SSS」です。 以下のリストは、パラメータの種類を示しています。 sの文字は、MySQLの引数が文字列で伝えます。

これは、次の4つのパラメータであってもよいです。

  • 私 - 整数
  • D - 倍精度浮動小数点数
  • S - 文字列
  • B - ブール値

各パラメータの型は、データのセキュリティを確保するために指定する必要があります。 判決の種類によって、SQLインジェクションの脆弱性のリスクを減らすことができます。