<?php
$conn = mysql_connect('localhost', 'root', '');
if(!$conn)
{
echo "数据库连接失败".mysql_error();
exit();
}
echo "数据库连接成功</br>";
$sql = "show databases";  //查找某个库是否存在
print("$sql</br>");
$sql_return = mysql_query($sql);
echo "$sql_return </br>";
while($row = mysql_fetch_array($sql_return))
{
for($i = 0; $i != count($row); ++$i)
{
printf("%s", $row[0]);
echo "</br>";
}
}
//mysql_select_db('web', $conn);

?>输出的结果是这样的:
数据库连接成功
show databases
Resource id #4 
information_schema
information_schema
mysql
mysql
performance_schema
performance_schema
test
test
web
web????为什么,每个库名都输出了两遍,我也用print_r($row);执行过,结果如下:
数据库连接成功
show databases
Resource id #4 
Array ( [0] => information_schema [Database] => information_schema ) Array ( [0] => mysql [Database] => mysql ) Array ( [0] => performance_schema [Database] => performance_schema ) Array ( [0] => test [Database] => test ) Array ( [0] => web [Database] => web )

解决方案 »

  1.   

    里面的web是我自己建的库,要找的库就是它了。但这里输出了两遍,不太懂,看着不爽,所以特来问下大神们这是啥原因造成的。
      

  2.   

    mysql_fetch_array()返回的既有数字数组,又有关联数组。你可以换用 mysql_fetch_row()
      

  3.   


    听你一说感觉一下懂了什么,我不应该用FOR循环的。直接while($row=mysql_fetch_array($sql_return)
    {
        printf("%s </br>", $row[0]);
    }就不会输出两遍。再研究一下。
      

  4.   

    http://cn2.php.net/manual/zh/function.mysql-fetch-array.php你自己看看你这程序写的:        for($i = 0; $i != count($row); ++$i)
            {
                printf("%s", $row[0]);
                echo "</br>";
            }一直$row[0]本身就是一个错误编码了,其次你从那个链接里了解一下mysql_fetch_array的第二个参数。
      

  5.   


    看懂第二个参数了,
    $row[0] 是为了输出返回的数组里的内容嘛。因为返回的数组一次只有一条,也就只需要使用下标为0的就行了吧。我这里的for是多余的,
      

  6.   

    是的 for 是多余的。 #3 代码就对了。