4

ここに私のコードがあります

$id = $this->user->id;
$data['last_cust_code']     = $a_Search['custcode'];
$data['last_paid_filter']   = $a_Search['paid'];
$data['last_unpd_filter']   = $a_Search['unpaid'];
$data['last_group_field']   = $a_Search['grouping'];
$data['last_session_code']  = $a_Search['session'];
$out = $objDb->update('tblusrusers', $data,array("id = ?"=>$id));

プロファイラー出力

UPDATE `tblusrusers` SET `last_cust_code` = ?, `last_paid_filter` = ?, `last_unpd_filter` = ?, `last_group_field` = ?, `last_session_code` = ? WHERE (id = '70')

Array
(
    [1] => TESTAAA
    [2] => N
    [3] => N
    [4] => 1
    [5] => 19993E
)

mysqlクライアントを介して直接更新すると、適切に更新されます。

重要:クエリを介して出力を選択すると、更新を確認できますが、phpmyadmin を介して更新を確認することはできません。コミット ステートメントと関係がありますか?つまり、自動コミットが false ですか?トランザクションを使用している他のクエリの場合上記の更新クエリに影響しますか?助けてください

4

2 に答える 2

1

実際の問題は、私のプロダクション チームの誰かが を入れた$objDb->beginTransaction() がコミットしなかったこと$objDb->commit()です。その結果、mysql データベースの自動コミットが false になりました (bcoz 開始されたトランザクション ステートメントは autocommit を false に設定しました)。 .

于 2013-01-08T13:31:01.380 に答える
0

Zend を使用したことはありませんが、データ配列は次のようにする必要があると思います

$data = array('last_cust_code' => $a_Search['custcode'],
             'last_paid_filter' => $a_Search['paid'],
             'last_unpd_filter' => $a_Search['unpaid'],
             'last_group_field' => $a_Search['grouping'],
             'last_session_code' => $a_Search['session'] );
于 2012-12-29T05:19:54.113 に答える