2014-01-11 15 views
1

我一直在寻找的论坛,通过计算在MySQL表中的列数的手段。计数的列数在一个MySQL表不工作

我想我已经找到了答案,但它似乎并不奏效。我查询的片断如下:

$count = queryMysql("SELECT count(*) FROM information_schema.columns WHERE table_schema='" . $dbname . "' AND table_name='" . $table . "'"); 

$dname包含我的数据库的名称和$table传递到我的函数作为参数,是表的名称。

当我echo $count简单打印Resource id#5

+0

您需要从查询中获取数据。 'fetch_object()'或'fetch_array()',但它会取决于你使用MySQL的接口功能方面的内容。 – BenM

回答

2

标准的MySQL库query()函数返回一个结果句柄,即使查询永远只能返回单个场和/或行。您需要从该句柄中取出一行,例如

$result = mysqli_query("SELECT ..."); 
$row = mysqli_fetch_assoc($result); 
echo $row['count']; 

在这段代码中,如果你没有echo $row,你会得到你的Resource id#xxx输出,因为它没有被选中的价值 - 它是你可以获取从该值的结果句柄。

0

假设你有一个自定义函数queryMysql(),它不处理的计数正确的输出,它改变到:

$count = queryMysql("SELECT count(*) AS columnCount 
    FROM information_schema.columns 
    WHERE table_schema='" . $dbname . "' 
    AND table_name='" . $table . "'"); 

注意我如何选择它as columnCount故正确命名。

1

执行查询后,您需要获取数据从它返回。请在这个例子看看:

 $query = "SELECT count(*) FROM information_schema.columns WHERE table_schema='" . $dbname . "' AND table_name='" . $table . "'"; 
     $res = mysql_query($query); 
     $row = mysql_fetch_assoc($res); 
+0

感谢您的帮助球员,阅读所有这些答案我已经得到的后整理。再次感谢新手。 – user3112721

0

试试这个:

$count = mysql_query("SELECT count(*) FROM information_schema.columns WHERE table_schema='" . $dbname . "' AND table_name='" . $table . "'"); 
    $nums = mysql_num_rows($count); 
    for($i=0; $i < $nums; $i++;){ 
    $result = mysql_result($count,$i,"count"); 
    echo $table." : ".$result; 
    }