奇怪的PHP输出
我使用这段代码试图获取一个表名并将其存储在一个变量中奇怪的PHP输出,php,mysql,for-loop,Php,Mysql,For Loop,我使用这段代码试图获取一个表名并将其存储在一个变量中 <?php connectDB(); $sql = "SHOW TABLES"; $result = mysql_query($sql); $tables = mysql_fetch_array($result); foreach ($tables as $table) { $table_name = $table[0]; echo $table_name; } closeConn();
<?php
connectDB();
$sql = "SHOW TABLES";
$result = mysql_query($sql);
$tables = mysql_fetch_array($result);
foreach ($tables as $table) {
$table_name = $table[0];
echo $table_name;
}
closeConn();
?>
首先,它输出'aa'和'bb',如果我更改数组索引,我知道它不是数据库中的表名,第二,我想做的是为数据库中的每个表运行一些代码,并将表名插入到一个变量中,我可以在所述代码中使用它?我该怎么做
$tables = mysql_fetch_array($result);
mysql\u fetch\u array
获取一行,而不是整个集合。这意味着当您执行$table[0]
时,实际上是在处理行中每个字段的字符串值
您应该将mysql\u fetch\u数组
放在循环中:
while ($table = mysql_fetch_array($result)) {
$table_name = $table[0];
echo $table_name;
}
mysql\u fetch\u array
获取一行,而不是整个集合。这意味着当您执行$table[0]
时,实际上是在处理行中每个字段的字符串值
您应该将mysql\u fetch\u数组
放在循环中:
while ($table = mysql_fetch_array($result)) {
$table_name = $table[0];
echo $table_name;
}
SHOW TABLES
返回每行一个表名的表。您应该使用mysql\u fetch\u array
的次数与表中的行数相同,因为它只检索表中的一行
想想这样的事情:
while($row = mysql_fetch_array($result)) {
$table_name = $row[0];
// ...
}
SHOW TABLES
返回每行一个表名的表。您应该使用mysql\u fetch\u array
的次数与表中的行数相同,因为它只检索表中的一行
想想这样的事情:
while($row = mysql_fetch_array($result)) {
$table_name = $row[0];
// ...
}
$sql=“显示表格”;
$result=mysql\u查询($sql)
$sql=“显示表格”;
$result=mysql\u查询($sql)
我建议
echo“$table\u name\n”代码>谢谢,我知道了!你知道为什么这只会打印出三个表中的两个,从第二个表开始,忽略第一个表吗?@statsm我想这不是$table\u name
的最终目的,但是是的,这可能是个好建议。@benhowdle89我的代码?不,不知道。如果您在MySQL控制台/phpMyAdmin中执行查询,会发生什么情况?@benhowdle89确保您已删除对MySQL\u fetch\u array
的上一次调用。我建议echo“$table\u name\n”代码>谢谢,我知道了!你知道为什么这只会打印出三个表中的两个,从第二个表开始,忽略第一个表吗?@statsm我想这不是$table\u name
的最终目的,但是是的,这可能是个好建议。@benhowdle89我的代码?不,不知道。如果您在MySQL控制台/phpMyAdmin中执行查询,会发生什么情况?@benhowdle89请确保您已删除对MySQL\u fetch\u array
的上一次调用。