脚本宝典收集整理的这篇文章主要介绍了php – mysql multi_query间歇性失败,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
function cpanel_populate_database($dbname) { // populate database $sql = file_get_contents(dirname(__FILE__) . '/PHP-Point-Of-sale/database/database.sql'); $MysqLi->multi_query($sql); $MysqLi->close(); }
sql文件是从PHPMyAdmin直接导出的,大约95%的时间运行没有问题,所有表都被创建并插入数据. (我从头开始创建数据库)
另外5%只创建了第一个表,有时创建了前4个表,但没有创建其他表(有30个表).
我决定不使用Multi_query,因为它看起来很麻烦,看看是否通过在分号后在每一行使用MysqL_query来发生错误.有没有人遇到像这样的问题?
在一个系统中,我将有问题的语句拆分为自己的文件.在另一个,我确实分别运行每个命令,分裂分号:
function load_sql_file($basename,$db) { // Todo: Trim comments From the end of a line LOG_upgrade("Attempting to run the `$basename` upgrade."); $filename = dirname(__FILE__)."/sql/$basename.sql"; if (!file_exists($filename)) { log_upgrade("Upgrade file `$filename` does not exist."); return false; } $file_content = file($filename); $query = ''; foreach ($file_content as $sql_line) { $tsl = trim($sql_line); if ($sql_line and (substr($tsl,2) != '--') and (substr($tsl,1) != '#')) { $query .= $sql_line; if (substr($tsl,-1) == ';') { set_time_limIT(300); $sql = trim($query,"\0.. ;"); $result = $db->execute($sql); if (!$result) { log_upgrade("Failure in `$basename` upgrade:\n$sql"); if ($error = $db->lastError()) { log_upgrade("$error"); } return false; } $query = ''; } } } $remainder = trim($query); if ($remainder) { log_upgrade("Trailing text in `$basename` upgrade:\n$remainder"); if (DEBUG) trigger_error('Trailing text in upgrade script: '.$remainder,E_USER_WARNING); return false; } log_upgrade("`$basename` upgrade successful."); return true; }
以上是脚本宝典为你收集整理的php – mysql multi_query间歇性失败全部内容,希望文章能够帮你解决php – mysql multi_query间歇性失败所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。