Автоматическое цитирование MySQL запрашивает сомнения в Zend Framework - PullRequest
1 голос
/ 12 ноября 2009

У меня мало сомнений по поводу цитирования запросов mysql в среде Zend. Хотя этот вопрос мне немного помог, но некоторые вещи все еще сбивают с толку:

1) $ table - Zend_Db_Table. Попытка получить строку из таблицы.

$where[] = $db->quoteInto('id = ?', $id);
$where[] = $db->quoteInto('user_id = ?', $user_id);
$row = $table->fetchRow($where);

Нужно ли использовать здесь quoteInto или оно будет автоматически указано в fetchRow? Что может быть лучше для такого рода запросов? Можно ли объединить 2 цитаты в одну, если это вообще необходимо?

2) $ table - Zend_Db_Table. Попытка сохранить строку в таблице.

$tablerow = $table->createRow();
$rowdata = array('id' => $id, 'user_id' => $user_id);
$tablerow->setFromArray($rowdata);
$ret = $tablerow->save();

Нужно ли здесь использовать какую-нибудь функцию цитаты?

3) $ table - Zend_Db_Table. Попытка обновить строку в таблице.

$row = $table->fetchRow($where);
$row->name = $name; 
$row->save();

Нужно ли указывать $ name на втором шаге?

4) Общий запрос

А)

$sql = "SELECT * FROM users where id=? and name=?";
$results = $db->fetchAll($sql, array($id, $name));

Нужно ли здесь цитировать?
B)

$sql =  "SELECT * FROM users where id=? and name=?";
$stmt = $db->query($sql, array($id, $name)); 
$result = $stmt->fetchAll();

Нужно ли здесь цитировать?

C) Какой из A или B лучше для общего запроса?

1 Ответ

4 голосов
/ 12 ноября 2009

Независимо от ответа, я думаю, что было бы полезно написать несколько тестов, чтобы вы могли быть уверены, что он делает то, что вы хотите. Настройте тестовую базу данных и создайте несколько модульных тестов с помощью PHPUnit или любой другой тестовой среды, которая вам нравится.

...