自动引用MySQL查询Zend Framework中的疑问

时间:2009-11-12 13:29:07

标签: mysql zend-framework quotes

我对在Zend框架中引用mysql查询几乎没有疑问。虽然这question 对我有所帮助,但很少有事情令人困惑:

1)$ table是Zend_Db_Table。试图从表中获取一行。

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

我是否需要在这里使用quoteInto或者是否会在fetchRow中自动引用?这种查询的更好方法是什么?如果需要,可以将2个quoteInto合并为一个吗?

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)一般查询

A)

$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 个答案:

答案 0 :(得分:4)

无论答案如何,我认为编写一些测试可能是有用的,这样你就可以确定它正在做你想做的事情。设置测试数据库并使用PHPUnit或您喜欢的任何测试框架创建一些单元测试。