SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

PHP + MySQL 編3 - レコード更新、追加、修正、削除、mysql_affected_rows

PostgreSQL については、SQL プログラミング資料の『PostgreSQL 編』も参考に
して下さい。
SQL プログラミング資料の『MySQL 編』に新しいバージョンの MySQL 資料がある。

■MySQL レコード追加、レコード修正、レコード削除

  ・MySQL のレコード追加、修正、削除は、次のようにする。
    尚、エラー処理は、まったく行っていないので現実的な処理ではない。

  ・変数項目中の「'」を「\'」に、「"」を「\"」にするには、
    $s = addslashes($s); のように addslashes を使用する。

  ・MySQL のバージョンによっては、トランザクションがサポートされていない。
    うちのバージョンでは、begin、commit でエラーにはならないものの
    rollback が使用できない。(^^;
    テーブルロックでは、マルチユーザアクセス時のレスポンスに問題がある
    ように思う。設計仕様でなんとかするしかないかも。

<?php
/*
========================================================================
  MySQL 追加、修正、削除テスト phpsql3.php
========================================================================
*/
?>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>MySQL 追加、修正、削除テスト</TITLE>
</HEAD>
<BODY>
<P align="center">▼ MySQL 追加、修正、削除テスト ▼</P>
<HR>
<DIV>
<?php
// MySQL 接続
  if (!($cn = mysql_connect("localhost", "root", ""))) {
    die;
  }

// MySQL DB 選択
  if (!(mysql_select_db("sak"))) {
    die;
  }

// MySQL トランザクション開始
  $sql = "begin";
  if (!(mysql_query($sql))) {
    die;
  }

// MySQL レコード削除
  $sql = "delete from test where key1 like 'z%'";
  if (!(mysql_query($sql))) {
    die;
  }
  print '初期削除件数= ' . mysql_affected_rows() . '<BR>';

// MySQL トランザクションコミット
  $sql = "commit";
  if (!(mysql_query($sql))) {
    die;
  }

// MySQL トランザクション開始
  $sql = "begin";
  if (!(mysql_query($sql))) {
    die;
  }

// MySQL レコード追加
  $sql = "insert into test values('z001', 10, 20, 30)";
  if (!(mysql_query($sql))) {
    die;
  }
  print '追加件数= ' . mysql_affected_rows() . '<BR>';
  $sql = "insert into test values('z002', 11, 22, 33)";
  if (!(mysql_query($sql))) {
    die;
  }
  print '追加件数= ' . mysql_affected_rows() . '<BR>';
  $sql = "insert into test values('z003', 111, 222, 333)";
  if (!(mysql_query($sql))) {
    die;
  }
  print '追加件数= ' . mysql_affected_rows() . '<BR>';

// MySQL レコード修正
  $sql = "update test set data2 = 222 where key1 = 'z001'";
  if (!(mysql_query($sql))) {
    die;
  }
  print '修正件数= ' . mysql_affected_rows() . '<BR>';

// MySQL レコード削除
  $sql = "delete from test where key1 = 'z003'";
  if (!(mysql_query($sql))) {
    die;
  }
  print '削除件数= ' . mysql_affected_rows() . '<BR>';

/*
// MySQL トランザクションロールバック
  $sql = "rollback";
  if (!(mysql_query($sql))) {
    die;
  }
*/

// MySQL トランザクションコミット
  $sql = "commit";
  if (!(mysql_query($sql))) {
    die;
  }

// MySQL 問い合わせ
  $sql = "select * from test order by key1";
  if (!($rs = mysql_query($sql))) {
    die;
  }
  print '照会件数= ' . mysql_num_rows($rs) . '<BR>';

// MySQL レコード参照
  while ($item = mysql_fetch_array($rs)) {
    print "${item['key1']} ";
    print "${item['data1']} ";
    print "${item['data2']} ";
    print "${item['data3']}<BR>";
  }

// MySQL 切断
  mysql_close($cn);

// 正常終了
  print "<P>正常終了</P>";
?>
</DIV>
<HR>
</BODY>
</HTML>

■PostgreSQL レコード追加、レコード修正、レコード削除

  ・PostgreSQL のレコード追加、修正、削除は、次のようにする。
    尚、エラー処理は、まったく行っていないので現実的な処理ではない。
    また、動作テストは実施していない。

  ・変数項目中の「'」を「\'」に、「"」を「\"」にするには、
    $s = addslashes($s); のように addslashes を使用する。

<?php
/*
========================================================================
  PostgreSQL 追加、修正、削除テスト phpsql4.php
========================================================================
*/
?>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>PostgreSQL 追加、修正、削除テスト</TITLE>
</HEAD>
<BODY>
<P align="center">▼ PostgreSQL 追加、修正、削除テスト ▼</P>
<HR>
<DIV>
<?php
// PostgreSQL 接続
  if (!($cn = pg_connect("host=sak-design port=5432 dbname=sak user=sak password=sak"))) {
    die;
  }

// PostgreSQL トランザクション開始
  $sql = "begin";
  if (!(rcd = pg_exec($sql))) {
    die;
  }

// PostgreSQL レコード削除
  $sql = "delete from test where key1 like 'z%'";
  if (!(rcd = pg_exec($sql))) {
    die;
  }
  print '初期削除件数= ' . pg_cmdtuples($rcd) . '<BR>';

// PostgreSQL トランザクションコミット
  $sql = "commit";
  if (!(rcd = pg_exec($sql))) {
    die;
  }

// PostgreSQL トランザクション開始
  $sql = "begin";
  if (!(rcd = pg_exec($sql))) {
    die;
  }

// PostgreSQL レコード追加
  $sql = "insert into test values('z001', 10, 20, 30)";
  if (!(rcd = pg_exec($sql))) {
    die;
  }
  print '追加件数= ' . pg_cmdtuples($rcd) . '<BR>';
  $sql = "insert into test values('z002', 11, 22, 33)";
  if (!(rcd = pg_exec($sql))) {
    die;
  }
  print '追加件数= ' . pg_cmdtuples($rcd) . '<BR>';
  $sql = "insert into test values('z003', 111, 222, 333)";
  if (!(rcd = pg_exec($sql))) {
    die;
  }
  print '追加件数= ' . pg_cmdtuples($rcd) . '<BR>';

// PostgreSQL レコード修正
  $sql = "update test set data2 = 222 where key1 = 'z001'";
  if (!(rcd = pg_exec($sql))) {
    die;
  }
  print '修正件数= ' . pg_cmdtuples($rcd) . '<BR>';

// PostgreSQL レコード削除
  $sql = "delete from test where key1 = 'z003'";
  if (!(rcd = pg_exec($sql))) {
    die;
  }
  print '削除件数= ' . pg_cmdtuples($rcd) . '<BR>';

/*
// PostgreSQL トランザクションロールバック
  $sql = "rollback";
  if (!(rcd = pg_exec($sql))) {
    die;
  }
*/

// PostgreSQL トランザクションコミット
  $sql = "commit";
  if (!(rcd = pg_exec($sql))) {
    die;
  }

// PostgreSQL 問い合わせ
  $sql = "select * from test order by key1";
  if (!($rs = pg_exec($sql))) {
    die;
  }
  print '照会件数= ' . pg_numrows($rs) . '<BR>';

// PostgreSQL レコード参照
  $ct = pg_numrows($rs);
  for ($i = 0; $i < $ct; $i++) {
    $item = pg_fetch_array($rs, $i);
    print "${item['key1']} ";
    print "${item['data1']} ";
    print "${item['data2']} ";
    print "${item['data3']}<BR>";
  }

// PostgreSQL 切断
  pg_close($cn);

// 正常終了
  print "<P>正常終了</P>";
?>
</DIV>
<HR>
</BODY>
</HTML>

■PHP + MySQL 編資料
■PHP 基礎編資料
■CGI-Perl 基礎編資料
■CGI-Perl 基礎実地編資料
■CGI-Perl 応用実地編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2024 Y.SAK