PHP5.29 Apache2 MySQL5
PDOを使用して複数クエリを実行しようとしています。
update文、delete文が失敗してしまいます。
-------------------------------------------------
データベース接続省略
$id=$_POST['id'];要素が数値の配列
$time=$_POST['myFormDate'];//0000-00-00型の日付
$count=$_POST['count'];//数値の配列
上記3つの変数はprintし、変数は代入されている。
for($i=0;$i<count($id);$i++)
{
$update='update test set count=? used_day=? where id=?';
$stmt=$db->prepare($update);
$flag=$stmt->execute(array($count[$i],$time,$id[$i]));
if ($flag){
print('データ更新に成功しました<br>');
}else{
print('データ更新に失敗しました<br>');
}
}
---------------------------------------------------------
何故これでupdate出来ないのか、またはdelete文にしても削除されないのか全くわかりません。select文にすると正確に表示されます。
どなたかおわかりになる方いらっしゃいましたらご教授お願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> どうやら「'SQLSTATE[42000]: 」と表示されていてSQL文にミスがあるようです。
質問にあるソースコードをよく拝見したらSQL文が間違っていることに気付きました。
$update='update test set count=? used_day=? where id=?';
ではなく、正しくは
$update='update test set count=?, used_day=? where id=?';
です。カンマが抜けていますよ。
x_jouet_x 様
何から何までご指導有難うございます。
完成しました。
こんな簡単なミスにも気付かず、時間を費やしていました。
No.1
- 回答日時:
PDOでDB接続はあまり行ったことがありませんが・・・。
下記のようにsetAttribute()関数で例外処理を有効にできませんか?
----------
$dbh = new PDO(...);
$dbh->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
----------
例外処理を有効にできたら下記のようにクエリー実行時に例外が出ていないか確認してみて下さい。
----------
try {
$flag=$stmt->execute(array($count[$i],$time,$id[$i]));
} catch(PDOException $exception) {
echo $exception->getMessage();
}
----------
この回答への補足
x_jouet_x様
ご指導有難うございます。
例外が見つかりました。どうやら「'SQLSTATE[42000]: 」と表示されていてSQL文にミスがあるようです。どう考えても見つかりそうにないですが…。
PDOを使わずに全部一個づつ更新する方法もありますけど、一気に更新したいと考えてますが中々難しく上手く行きません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで配列をPOSTデータで送った...
-
$_SESSIONに二次元配列を使える...
-
配列をループでたくさん宣言し...
-
配列を回すとき、最後の要素だ...
-
file_existsでファイル名の部分...
-
【Smarty】foreach関数やsectio...
-
xml_parse_into_structを使うと...
-
ファイルから指定行数分だけ読...
-
配列をmb_ereg_replaceで一気に...
-
ネストが深い時のforeachはどう...
-
PHPにてクラスを配列にすること...
-
PHPのカッコ[ ]の使い方について
-
[Smarty] register_objectでの...
-
array_combineがうまくいかない...
-
PHPの preg_grep関数(正規表現...
-
PHPでの簡易ビンゴゲームでの疑...
-
fgetsで取り込んだ文字をexplod...
-
[PHP] fputcsv()関数でファイル...
-
Array Array と表示される
-
String だと「 ByRef引数の型が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
String だと「 ByRef引数の型が...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
PHPのカッコ[ ]の使い方について
-
$_SESSIONについて教えて下さい。
-
配列を回すとき、最後の要素だ...
-
ネストが深い時のforeachはどう...
-
配列一致(要素順番は違うが内容...
-
PHPにてクラスを配列にすること...
-
配列の値の更新方法について
-
postgresql関数をつかったレコ...
-
PHPで配列をPOSTデータで送った...
-
PHP 多次元配列変数のデータ受...
-
漢字のソートについて
-
チェックボックスが複数選択で...
-
$_POSTを一括してサニタイズし...
-
smarty 同じ要素内で改行
-
配列のbindValue方法について
おすすめ情報