「PHPで複数フィールドの一括アップデート方法」の編集履歴(バックアップ)一覧はこちら

PHPで複数フィールドの一括アップデート方法」(2015/07/03 (金) 20:09:17) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

PHPで複数フィールドをPDOを使い、MySQLにてアップロードする方法についてまとめていきたいと思います。7月2日記事 ~ ~ 目次 #contents ~ ~ *概要 一つずつ実行していく感じです。pdoでそれぞれidとパラメータをチェックしていきます。 ~ ~ *コード(データベース文字コード変換つきコード) データベースの文字コードがUTF-8の方はmb_convert_encoding関数はいりません。 <?php $dsn = 'mysql:dbname='.DB_NAME.';host='.DB_HOST.';port='.DB_PORT.''; $user = DB_USER; $password = DB_PASSWORD; //データベース接続&接続しなければエラー try{ $dbh = new PDO($dsn, $user, $password); }catch (PDOException $e){ print('Connection failed:'.$e->getMessage()); die(); } //var_dump($_POST); $array = $_POST[data]; //ダンプ //var_dump($array); $stmt = $dbh->prepare("UPDATE table_name SET column1=:column1, column2=:column2 where id=:id"); foreach ($array as $row=>$value) { $stmt->bindValue(':id', mb_convert_encoding($value[id],"EUC-JP","UTF-8"), PDO::PARAM_INT); $stmt->bindValue(':column1', mb_convert_encoding($value[column1],"EUC-JP","UTF-8"), PDO::PARAM_STR); $stmt->bindValue(':column2', mb_convert_encoding($value[column2],"EUC-JP","UTF-8"), PDO::PARAM_STR); $stmt->execute(); if ($stmt->rowCount() === 1) { continue; } } ?> &color(red){注意:データのエラーチェック、妥当性は省いています。} ~ ダンプでまず受信できてるかどうかを確認してから、作成に取り掛かった方がやりやすいかもしれません。 PDOのbindValueについては、数字、文字列、URLなど色々な型があるので、型を調べて適切なbindValueを使いましょう ~ ~ 以上
PHPで複数フィールドをPDOを使い、MySQLにてアップロードする方法についてまとめていきたいと思います。7月2日記事 ~ ~ 目次 #contents ~ ~ *概要 一つずつ実行していく感じです。pdoでそれぞれidとパラメータをチェックしていきます。 ~ ~ *コード(データベース文字コードがEUC-JPで、ファイルがUTF-8の場合) <?php $dsn = 'mysql:dbname='.DB_NAME.';host='.DB_HOST.';port='.DB_PORT.''; $user = DB_USER; $password = DB_PASSWORD; //データベース接続&接続しなければエラー try{ $dbh = new PDO($dsn, $user, $password); }catch (PDOException $e){ print('Connection failed:'.$e->getMessage()); die(); } //var_dump($_POST); $array = $_POST[data]; //ダンプ //var_dump($array); $stmt = $dbh->prepare("UPDATE table_name SET column1=:column1, column2=:column2 where id=:id"); foreach ($array as $row=>$value) { $stmt->bindValue(':id', mb_convert_encoding($value[id],"EUC-JP","UTF-8"), PDO::PARAM_INT); $stmt->bindValue(':column1', mb_convert_encoding($value[column1],"EUC-JP","UTF-8"), PDO::PARAM_STR); $stmt->bindValue(':column2', mb_convert_encoding($value[column2],"EUC-JP","UTF-8"), PDO::PARAM_STR); $stmt->execute(); if ($stmt->rowCount() === 1) { continue; } } ?> &color(red){注意:データのエラーチェック、妥当性は省いています。} ~ ~ *コード(データベース文字コードがUTF-8で、ファイルがUTF-8の場合) <?php $dsn = 'mysql:dbname='.DB_NAME.';host='.DB_HOST.';port='.DB_PORT.''; $user = DB_USER; $password = DB_PASSWORD; //データベース接続&接続しなければエラー try{ $dbh = new PDO($dsn, $user, $password); }catch (PDOException $e){ print('Connection failed:'.$e->getMessage()); die(); } //var_dump($_POST); $array = $_POST[data]; //ダンプ //var_dump($array); $stmt = $dbh->prepare("UPDATE table_name SET column1=:column1, column2=:column2 where id=:id"); foreach ($array as $row=>$value) { $stmt->bindValue(':id', $value[id], PDO::PARAM_INT); $stmt->bindValue(':column1', $value[column1], PDO::PARAM_STR); $stmt->bindValue(':column2', $value[column2], PDO::PARAM_STR); $stmt->execute(); if ($stmt->rowCount() === 1) { continue; } } ?> ダンプでまず受信できてるかどうかを確認してから、作成に取り掛かった方がやりやすいかもしれません。 PDOのbindValueについては、数字、文字列、URLなど色々な型があるので、型を調べて適切なbindValueを使いましょう ~ ~ 以上

表示オプション

横に並べて表示:
変化行の前後のみ表示: