我正在开发自己的数据库管理系统,使用PHP进行开发,并且我为自己的查询选择了与MySQL查询相同的语法。如何检查MySQL查询语法?
我想知道是否有工具来检查MySQL查询是否有效,而无需连接到真正的MySQL数据库。
有人有办法做到这一点吗?尽管我使用了一些正则表达式,但我不确定这是否是最简单(最快)的方法。
提前致谢!
我正在开发自己的数据库管理系统,使用PHP进行开发,并且我为自己的查询选择了与MySQL查询相同的语法。如何检查MySQL查询语法?
我想知道是否有工具来检查MySQL查询是否有效,而无需连接到真正的MySQL数据库。
有人有办法做到这一点吗?尽管我使用了一些正则表达式,但我不确定这是否是最简单(最快)的方法。
提前致谢!
有几个很好的PHP SQL解析器将查询分解为结构化数组。
您可以通过解析器运行代码并查看它是否中断以确定它是否是有效的语法。
http://code.google.com/p/php-sql-parser/
和
http://pear.php.net/package/SQL_Parser
是2我已经在过去使用。
这就是我一直在寻找的东西。谢谢。 –
我相信你可以尝试在phpmyadmin中测试你的代码,而不会影响你的数据库。
REGEX将工作太多...也许创建一个虚拟表并尝试在那里的语法?
虽然我已经连接到一个“临时”数据库并检查了mysql_query函数的返回值,但这是我想避免的那种技巧。 –
像那样的工具不能确保存在表或列。该工具需要数据库模式来检查错误。我使用heidisql,如果我有更多的钱我会购买正确的多个数据库在MySQL服务器上,我会执行“创建数据库”或复制数据库代码和测试第二个数据库没有任何值,或者优惠价值。
set @s := 'your sql script';
prepare stm1 from @s;
你应该给更多的解释和更多的格式。这是你第一次来这里,所以你应该更多地关注如何回答 –
我会试着找到一个库 - 快速浏览一下让我发现,MySQL的SQL解析代码为约16000的C和C++线 - 那是一个大量的工作来重做 –
其实我并不需要重新编写解析所有查询,但仅限于最常见的查询,如SELECT,INSERT,DROP或DELETE。 –
您正在建立一个数据库管理应用程序?像phpMyAdmin? –