PHPでSQLServerを使う [Update]

PHPでPDOを使ってSQLServerのDBにデータを更新してみました。
実行環境およびテストデータは、いままでの実験(Select  Insert)と同じです。

今回は、名前付きパラメータで prepareメソッドを使ってみました。(参照:PHPBook


<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>PHPでSQL Serverを使う(Update)</title>
  </head>
  <body>
    <?php
      $dsn = 'sqlsrv:server=KAZ-PCSQLEXPRESS;Database=TestDB';
      $user = 'UID';
      $password = 'PWDl';

      try{
        $conn = new PDO($dsn, $user, $password);
        print('<br />');
        if ($conn == null){
          print('接続に失敗しました。<br />');
        }
        else{
          print('接続に成功しました。<br />');
          $conn->query('SET NAMES sjis');
          print('<br />');

          lst($conn, '更新前のデータ一覧');

          print('<br />');
          $sql = "Update 得意先マスタ Set 得意先名 = :nm , 登録日時 = GETDATE() Where cd = :cd";
          $stmt = $conn->prepare($sql);
          $flag = $stmt->execute(array(':cd'=>'001', ':nm'=>'一番目の得意先'));
          if ($flag){
            print('データの更新に成功しました<br><br>');
            lst($conn, '更新後のデータ一覧');
          }
          else{
            print('データの更新に失敗しました<br>');
          }
          print('<br />');
        }
      }
      catch (PDOException $e){
        print('Error:'.$e->getMessage());
        die();
      }

      $conn = null;
    ?>
  </body>
</html>

<?php
function lst($conn, $ttl) {
  print($ttl.':<br>');
  $sql = 'select * from 得意先マスタ';
  $stmt = $conn->prepare($sql);
  $stmt->execute();
  while($row = $stmt->fetch(PDO::FETCH_BOTH)){
    print($row['cd']);
    print($row[1]);
    print($row[2].'<br>');
  }
}
?>

実行結果

スポンサーリンク
Rectangle大広告
Rectangle大広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする