MySQL 行数 PHP 并显示结果

MySQL rows count with PHP and show result

我想制作一个 API,当您访问它时,它会以文本格式显示我的数据库中有多少行的结果。

数据库信息:

Username: predator_db

DB Name: predator_db

Table Name: database

我尝试了几个代码,但无法正常工作。

尝试过的代码:

<?php
$con = mysql_connect("localhost","predator_db","PASS");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("predator_db", $con);

$result = mysql_query("select count(1) FROM database");
$row = mysql_fetch_array($result);

$total = $row[0];
echo "Total rows: " . $total;

mysql_close($con);
?>

代码响应:"Total Rows: " <不显示行数。错误日志:

[05-Feb-2015 23:44:58 UTC] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/predator/public_html/api/resolver/number.php on line 2
[05-Feb-2015 23:44:58 UTC] PHP Warning:  mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/predator/public_html/api/resolver/number.php on line 10

您正在尝试从 database... 中获取结果,而不是从 predator_db 的实际数据库中获取结果。

我会用基础知识来做,但请查看 MySQLi 准备好的语句 and/or PDO。

$link = mysqli_connect("localhost", "predator_db", "PASS", "predator_db");
$result = mysqli_query($link, "select COUNT(id) AS count FROM `database`");
// make sure it worked
if(!$result) {
    die('Error: ' . mysqli_error($link));
} else {
    $num_rows = mysqli_fetch_assoc($result);
    // echo it
    echo "Rows: " . $num_rows['count'];
}
<?php
$link = mysqli_connect("localhost", "DB_USER", "DB_PASS", "DB_NAME");
$result = mysqli_query($link, "select COUNT(*) AS count FROM DB_NAME.DB_TABLE");
if(!$result) {
    die('Error: ' . mysqli_error($link));
} else {
    $num_rows = mysqli_fetch_assoc($result);
    echo "Rows: " . $num_rows['count'];
}
?> 

首先,在像 database 这样的保留关键字之后命名 table 并不是一个好主意。然而,如果你打算走那条路,你总是必须把名字放在反引号中。所以,你的查询应该是

$result = mysql_query("select count(1) FROM `database`");

另外,查看 MYSQLi,因为旧的 MySQL 驱动程序已被弃用。