您有更多的问题案例,而不仅仅是字符串中的分号。
- 无法执行的脚本内置命令
mysql_query()
,例如USE
。 - 不以分号结尾的语句,例如
DELIMITER
。 - 包含分号但不包含引号的语句,例如
CREATE PROCEDURE
。
我不知道在不使用mysql命令行客户端的情况下处理此任务的简便方法。我意识到您说您不能依靠该客户端,但是如果没有该客户端,则需要大量的PHP代码来解析脚本并适当地执行语句。
您也许可以在phpMyAdmin产品中找到这样的代码。但是,该产品是根据GPL许可的,因此,如果您使用任何代码,则还必须根据GPL许可自己的项目。
另请参阅我对以下相关问题的回答:
- 在PHP中运行MySQL * .sql文件
- 从PHP内加载.sql文件
- 是否可以从另一个sql脚本中的存储过程中调用sql脚本?



