使用MySQLi和Zend_DB的非准备查询

时间:2009-12-28 16:42:24

标签: php zend-framework mysqli

由于我的服务器PDO版本存在错误,我已切换到使用MySQLi。但是,这提出了另一个问题,因为Zend_DB MySQLi adaptor没有exec函数。 (Zend PDO adaptor did),这意味着我无法执行sql脚本。 (包含DROP TABLE和CREATE TABLE查询的加载)。

所以我可以做的事情:

$sqlQuery = file_get_contents('schema.sql');
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->exec($sqlQuery);

我无法使用Zend MySQLi Adapter找到一种方法。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试:

$sqlQuery = file_get_contents('schema.sql');
$adapter = Zend_Db_Table_Abstract::getDefaultAdapter();
$mysqli = $adapter->getConnection(); // i think the returns the Mysqli Instance directly...
$mysqli->multi_query($sqlQuery);

答案 1 :(得分:0)

这就是我做的事情

$bootstrap = $application->getBootstrap();
$bootstrap->bootstrap(‘db’);
$config = $bootstrap->getResource(‘db’)->getConfig();
$runCommand = “mysql -h “.$config["host"].” -P “.$config["port"].” -u’”.$config["username"].”‘ -p’”.$config["password"].”‘ “.$config["dbname"].” < “.dirname(__FILE__) . ‘/schema.mysql.sql’;
echo $runCommand;
system($runCommand);

更多信息: http://www.unexpectedit.com/zend-php/zend-db-exec-a-sql-file