我一直在论坛上寻找一种方法来计算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 :(得分: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;
}