PHP:一个mysql_query语句中的多个SQL查询
所以我有一个SQL转储文件需要使用
mysql_query()加载.不幸的是,它不可能执行多个查询.
– >不能假定已经安装了mysql命令行客户机(mysql –help) – 用于直接加载SQL文件 – >不能假定安装了mysqli扩展 /* contents of dump.sql,including comments */ DELETE FROM t3 WHERE body = 'some text; with semicolons; scattered; throughout'; DELETE FROM t2 WHERE name = 'hello'; DELETE FROM t1 WHERE id = 1; 下面的explode()将不起作用,因为某些转储内容的值包含分号. $sql = explode(';',file_get_contents('dump.sql')); foreach ($sql as $key => $val) { mysql_query($val); } 在不修改转储文件的情况下加载SQL的最佳方式是什么?
你有更多的问题案例,而不仅仅是字符串中的分号.
>脚本builtin不能由mysql_query()执行的命令,如USE. 我不知道一个简单的方法来处理这个任务,而不会弹出mysql命令行客户端.我意识到你说你不能依赖该客户端存在,但没有客户端,您需要大量的PHP代码来解析脚本并适当地执行语句. 您可能可以在phpMyAdmin产品中找到这样的代码.但是,该产品是根据GPL许可的,所以如果您使用任何代码,您还必须根据GPL许可您自己的项目. 另请参阅我对这些相关问题的答案: > Running MySQL *.sql files in PHP (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |