2011-07-24 73 views
0

基本上我正在寻找使用PHP来创建一个页面,该页面将接收SQL输入并输出由DB(MySQL)返回的结果。这不是一个生产网站(我了解安全含义)。这更多的是学习和练习。有点像phpMyAdmin的SQL控制台部分,甚至类似于sqlzoo.net可以做的(我认为他们使用的是perl,但我想用PHP来完成)。有没有一种切实可行的方法来实现这一点在PHP中输入SQL输入并将查询结果输出到页面

例如,我不知道查询返回多少列时,如何在PHP/HTML中创建页面以显示结果表?

此外,允许访问者访问此网页的最实用方法是使用原始数据将数据库恢复到默认状态? (例如创建一个原始状态的SQL转储并创建一个运行它的按钮?或者有更好的方法吗?)

谢谢!

+0

检查phpmyadmin的来源 –

+0

哈哈有趣的想法,虽然我确信源足够大,找到这个特定的代码会很难,更不用理解它。不想完全撕掉他们的代码,虽然我会好奇看看它是如何完成的。你做过了吗? –

+0

不可以,但是我的项目来源至少是100或1000倍,所以......我想大概需要2-5分钟才能找到它。 –

回答

1

使用*在您的SQL查询从mysql_fetch_row()mysql_fetch_assoc()foreach获取在结果中的所有列和循环。 除此之外,你有没有想过使用mysql CLI?这对这些要求很有用。 这个问题应该比现在更具体。

“创建原始状态的SQL转储并创建一个运行它的按钮?” - 是的。但请确保您删除/删除现有数据。

+0

感谢您的建议,实际上我已经使用CLI以及PhpMyAdmin中的SQL输入框......并且出于实践目的,这些工作非常棒。作为一种学习练习,我想要做的是在PHP中创建一个模拟这些资源功能的页面。 –

1

您可能必须运行至少两个查询...首先使用LIMIT 1返回一行,并计算返回的元素(如果使用mysql $ row = fetch_row($ handle),则使用PHP count($ row))对列进行计数,并且可以使用SQL COUNT()来查找将返回多少行。

至于将数据返回到原始状态,我认为从像你说的转储丢弃/重新创建可能是最简单和最可靠的选择。

+0

你不需要两个查询来检查列数 –

1

你最好的选择是运行查询,检查行数大于0,然后如果是,循环遍历查询结果集在foreach中,只显示任何你喜欢的。