Reputation: 2014
How do I dynamically add a PDO statement into array?
I would like write a function as in example:
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);
}
But PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
is always understood as another query param, not as a PDO statement.
So, how do I include PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
in the execute statement depending on $UseBufferedQry
value?
Upvotes: 1
Views: 256
Reputation: 78671
In fact, you should use this in prepare
, not in 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
So for your purposes, you could do something like:
$PrepareParams=array();
if ($UseBufferedQry) {
$PrepareParams[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true;
}
return $statement = Zend_Db_Table::getDefaultAdapter()
->prepare($QueryString, $PrepareParams)
->execute($ArrayParams);
Upvotes: 2