Пример удаления нескольких условий с помощью инфраструктуры Zend - PullRequest
6 голосов
/ 23 мая 2009

Может ли кто-нибудь дать мне пример того, как я могу удалить строку в MySQL с Zend Framework, когда у меня есть два условия?

Т.е.: (пытается это сделать)

"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);

Ответы [ 3 ]

29 голосов
/ 31 июля 2010

Лучше использовать это:

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

Символы-заполнители (?) Заменяются значениями, экранируются от специальных символов и заключаются в кавычки.

8 голосов
/ 23 мая 2009

Вместо ассоциативного массива вы должны просто передать массив выражений критериев, ala:

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

(и убедитесь, что вы правильно экранировали эти значения, если они поступают из пользовательского ввода)

0 голосов
/ 16 декабря 2011

Используйте это, оно работает ...

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

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

$table->update($data, $where);
...