计算mysql表中的列数不起作用

时间:2014-01-11 20:59:18

标签: php 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

4 个答案:

答案 0 :(得分:2)

标准mysql库'query()函数返回结果HANDLE,即使查询只返回单个字段和/或行。您需要从该句柄中获取一行,例如

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

在这段代码中,如果你执行了echo $row,你将得到Resource id#xxx的输出,因为它不是所选的值 - 它是你可以从中获取该值的结果句柄。

答案 1 :(得分: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);

答案 2 :(得分:0)

假设您有一个自定义函数queryMysql(),它不处理计数权限的输出,请将其更改为:

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

请注意我如何选择它as columnCount,以便正确命名。

答案 3 :(得分: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;
    }