2011-11-16 59 views
1

我正在开发自己的数据库管理系统,使用PHP进行开发,并且我为自己的查询选择了与MySQL查询相同的语法。如何检查MySQL查询语法?

我想知道是否有工具来检查MySQL查询是否有效,而无需连接到真正的MySQL数据库。

有人有办法做到这一点吗?尽管我使用了一些正则表达式,但我不确定这是否是最简单(最快)的方法。

提前致谢!

+2

我会试着找到一个库 - 快速浏览一下让我发现,MySQL的SQL解析代码为约16000的C和C++线 - 那是一个大量的工作来重做 –

+0

其实我并不需要重新编写解析所有查询,但仅限于最常见的查询,如SELECT,INSERT,DROP或DELETE。 –

+0

您正在建立一个数据库管理应用程序?像phpMyAdmin? –

回答

0

我相信你可以尝试在phpmyadmin中测试你的代码,而不会影响你的数据库。

REGEX将工作太多...也许创建一个虚拟表并尝试在那里的语法?

+0

虽然我已经连接到一个“临时”数据库并检查了mysql_query函数的返回值,但这是我想避免的那种技巧。 –

1

像那样的工具不能确保存在表或列。该工具需要数据库模式来检查错误。我使用heidisql,如果我有更多的钱我会购买正确的多个数据库在MySQL服务器上,我会执行“创建数据库”或复制数据库代码和测试第二个数据库没有任何值,或者优惠价值。

1
set @s := 'your sql script'; 
prepare stm1 from @s; 
+0

你应该给更多的解释和更多的格式。这是你第一次来这里,所以你应该更多地关注如何回答 –