Mysql COUNT函数不起作用

时间:2014-06-13 23:56:27

标签: php mysql sql arrays

我有一个名为articles的数据库,我只想打印出数据库中的行数。这是我的代码:

<?php
$con = mysql_connect('link', 'database', 'password');
if (!$con) { 
  die('Could not connect: ' . mysql_error());
}           
$result = mysql_query("SELECT COUNT(*) FROM articles");  
$row=mysql_fetch_array($result)
?>
<p>The amount of rows is <?php echo $row ?>.</p>

当我测试此代码时,只是给我&#39;行数是。&#39;作为输出。我做错了什么?

编辑:这是我现在的完整代码,但它仍然无法运行:

$con = mysqli_connect('url', 'database', 'password');
if (!$con) { 
    die('Could not connect: ' . mysqli_error());
}           
$result = mysqli_query($con, "SELECT COUNT(URL) AS row_count FROM articles"); 
if (!$result ) {
    echo "DB Error, could not query the database\n";
    echo 'MySQL Error: ' . mysqli_error($con);
    exit;
}           
$row=mysqli_fetch_array($result)
?>
<p>The amount of rows is <?= $row['row_count'] ?>.</p>

错误:DB错误,无法查询数据库MySQL错误:未选择数据库

3 个答案:

答案 0 :(得分:4)

您正试图打印该行。

使用echo $row[0]代替

另外,由于它没有打印任何内容,我怀疑你的查询失败了,因为FALSE将在PHP中被echo删除。

旁注:mysql_*已弃用,请考虑改为使用PDO

编辑:

以下完整代码

    <?php
$con = new mysqli('url', 'database', 'password', 'db_name');
if (!$con) { 
    die('Could not connect: ' . mysqli_error());
}

$result = $con->query("SELECT COUNT(*) AS row_count FROM articles");

if (!$result) {
    echo "DB Error, could not query the database\n";
    echo 'MySQL Error: ' . $con->error;
    exit;
}           

$row = $result->fetch_assoc();
?>
<p>The amount of rows is <?= $row['row_count'] ?>.</p>

答案 1 :(得分:1)

你是echo一个数组(应该给你错误)。相反,您可以为COUNT设置别名:

$result = mysqli_query($con, "SELECT COUNT(*) AS Total FROM articles"); 

echo就像:

<p>The amount of rows is <?php echo $row['Total'] ?>.</p> 

答案 2 :(得分:-1)

正如其他人所说,当你需要在数组中打印某些东西时,你正试图打印数组(因此是fetch_array)。

此外,mysql_*已弃用,我使用的mysqli_*非常相似且易于切换。

此外,请尝试计数中的字段名,而不是*。我通常使用索引或主键或其他东西。

<?php
  $link = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);

  if (mysqli_connect_errno($link)) {
        echo 'Could not select database:' . DB_NAME;
        exit;
  }          

  $result = mysqli_query($link, "SELECT COUNT(fieldname) AS row_count FROM articles");  
  if (!$result ) {
            echo "DB Error, could not query the database\n";
            echo 'MySQL Error: ' . mysqli_error($link);
            exit;
  }

  $row=mysqli_fetch_array($result)
?>
<p>The amount of rows is <?= $row['row_count'] ?>.</p>