0
我正在研究一个脚本,以便更容易地对数据库进行版本控制。为了做到这一点,我们有许多文件(每个文件至少包含一条语句,一对包含超过一百条语句),其中包含SQL查询,我们需要更新使用分号分隔的模式。它在90%的时间内很好地工作,除非偶尔有一个陈述会失败,并且我们在解决这些问题时遇到问题。发生这种情况时,我们必须删除数据库并手动复制并粘贴失败文件中的每条SQL语句以对其进行测试。某些查询会导致异常,但对于一些查询函数只是返回1从Zend_Db_Adapter :: exec获取错误消息
我用下面的代码,但我无法弄清楚如何发现运作有问题的声明:
$db = Zend_Db_Table::getDefaultAdapter();
try{
// loop through all the files
foreach($files as $file){
echo 'Running ', $file, PHP_EOL;
// use the connection directly to load sql in batches
if($db->exec(file_get_contents($dir . $file)) == 1){
// *how do I get the problem line here?*
return false;
}
$db->exec('INSERT INTO database_history SET file = "' . $file .'";');
}
} catch (Exception $e) {
echo 'AN ERROR HAS OCCURED:' . PHP_EOL;
echo $e->getMessage() . PHP_EOL;
return false;
}