如何将PDO语句动态添加到数组中? 我想写一个函数,例如:
function executePreparedQRY($QueryString, $ArrayParams, $UseBufferedQry = FALSE) {
if ($UseBufferedQry) {
$ArrayParams[] = PDO::MYSQL_ATTR_USE_BUFFERED_QUERY;
}
return $statement = Zend_Db_Table::getDefaultAdapter()->prepare($QueryString)->execute($ArrayParams);
}
但PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
始终被理解为另一个查询参数,而不是PDO语句。
那么,如何根据PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
值在执行语句中包含$UseBufferedQry
?
答案 0 :(得分:2)
事实上,您应该在prepare
中使用此功能,而不是execute
。
return $statement = Zend_Db_Table::getDefaultAdapter()
->prepare($QueryString, array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true))
->execute($ArrayParams);
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
docs
因此,出于您的目的,您可以执行以下操作:
$PrepareParams=array();
if ($UseBufferedQry) {
$PrepareParams[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true;
}
return $statement = Zend_Db_Table::getDefaultAdapter()
->prepare($QueryString, $PrepareParams)
->execute($ArrayParams);