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>');
}
}
?>
実行結果
![]() |
