6

2 つの条件がある場合に、Zend フレームワークを使用して mysql で行を削除する方法の例を教えてもらえますか?

すなわち:(これをしようとしている)

"DELETE FROM messages WHERE message_id = 1 AND user_id = 2"

私のコード(惨めに失敗しているのは次のようになります)

// is this our message?
$condition = array(
                   'message_id = ' => $messageId,
                   'profile_id = ' => $userId
);

$n = $db->delete('messages', $condition);
4

3 に答える 3

29

これを使用することをお勧めします:

$condition = array(
    'message_id = ?' => $messageId,
    'profile_id = ?' => $userId
);

プレースホルダー記号 (?) は値に置き換えられ、特殊文字がエスケープされ、引用符が適用されます。

于 2010-07-31T12:16:31.570 に答える
8

連想配列の代わりに、基準式の配列を渡す必要があります。

$condition = array(
    'message_id = ' . $messageId,
    'profile_id = ' . $userId
);

(そして、それらがユーザー入力から来ている場合は、それらの値を適切にエスケープするようにしてください)

于 2009-05-22T20:45:16.817 に答える
-3

これを使用してください、それは働いています...

$data = array(
    'bannerimage'=>$bannerimage
);

$where = $table->getAdapter()->quoteInto('id = ?', 5);

$table->update($data, $where);
于 2011-12-16T05:48:26.260 に答える