使用PHP获取动态mySQL表列

使用PHP获取动态mySQL表列,php,mysql,dynamic-columns,Php,Mysql,Dynamic Columns,通常,所有基本的PHP-MYSQL-SELECT教程都基于此代码 $query = "SELECT * FROM table_name"; $result = mysql_query($query); $num = mysql_num_rows($results); if ($num > 0) { while ($row = mysql_fetch_assoc($result)) { // You have $row['ID'], $row['Category']

通常,所有基本的PHP-MYSQL-SELECT教程都基于此代码

$query = "SELECT * FROM table_name";
$result = mysql_query($query);

$num = mysql_num_rows($results);
if ($num > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        // You have $row['ID'], $row['Category'], $row['Summary'], $row['Text']
    }
}
但为此,我需要知道列名,如“ID”、“Category”、“Summary”或“Text”。 如果我在phpmyadmin中添加一个新的列,如“Email”,我还必须向php脚本添加
$row['Email']


如何使此步骤动态化?

关于此特定问题,您需要哪些行?如果您只想打印它们,请执行print\r($row),它们将在那里,如果您想使用它们执行某些操作,请按如下方式创建foreach循环

foreach($row as $k=>$cell)
{
    //do something with cell
}

但是,正如许多其他人告诉你的,使用PDO。

你可以使用
mysql\u fetch\u array()
而不是
mysql\u fetch\u assoc()
,你可以使用索引而不是名称,但是,在任何情况下,顺序都不能保证,除非你自己在查询中定义它,但取决于你想对结果做什么,这会有帮助


标准nag:使用MySQLi。

PSA:mysql的
mysql.*
函数是。不建议编写新代码,因为这样会阻止您将来升级。相反,请使用或和。这是一个很好的理解方式…Rafael说使用“MySQLi”/Dexa说“PDO”-我现在应该真正使用什么?我建议使用PDO。如果您希望将来移动到另一个数据库,PDO可能会减少很多工作。一篇关于Maybe help.MySQLi的文章更接近于旧的MySQL函数,而PDO则大不相同,如果您开始PHP/MySQL开发,请选择PDO,如果您正在迁移并且旧的应用程序使用MySQLi,我相信如果您在谷歌上搜索PDO教程,您会发现很多。这一点也不复杂,当你开始学习时,不要害怕使用预先准备好的语句,因为它们是PDO令人敬畏的原因。开始一个简单的项目,看看php.net文档,就可以了。祝你好运。那么PDO会比MySQLi好吗?我的意见是肯定的。阅读zfus的评论。