php - 查询后从 PHP/MySQL 中的数据库行返回值 0
问题描述
我正在尝试创建一个页面,我可以在其中获取数据库的记录值。我的查询是这样的:
因此,如果它们存在,我需要从 tableexample 中获取状态值 1 的数量(作为计数)并计算它们,如果它们不存在,我需要从中获取值为 0。为了获得值,我使用了这段代码,它工作得很好,但是如果没有找到结果,我似乎无法在我的 PHP 代码中返回 0 值。我有点失落。
$user = $_SESSION["user"];
$systems = mysqli_connect("localhost", "root", "", "testdatabase");
$query = "SELECT SUM(count) AS value_sum FROM tableexample WHERE user = '$user' AND status = '1'";
$request = mysqli_query($systems, $query);
if (mysqli_num_rows($request) > 0) {
while ($row = mysqli_fetch_array($request)) {
echo '' . $row["value_sum"] . '';
}
} else {
echo '0';
}
因此,这段代码可以毫无问题地获取值,但是当我放置“else”时,它应该给我值 0,但没有给我任何东西。
关于如何在不更改代码的情况下解决这个问题的任何想法?
解决方案
使用 PDO 会是这样的吗:
$dsn = "mysql:host=localhost;dbname=myDatabase;charset=utf8mb4";
$pdo = new PDO($dsn, "username", "password", [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
$stmt = $pdo->prepare('
SELECT SUM(count)
FROM `table_example`
WHERE `user` = :user
AND `status` = "1"'
);
$stmt->bindParam(':user', $_SESSION["user"], PDO::PARAM_STR);
$stmt->execute();
$sum = $stmt->fetchColumn();
echo $sum;
您无需编写任何循环或先前的检查即可获得 SUM 值。
推荐阅读
- java - 2D 球面波投影发生器无法正常工作
- c++ - gcc -MDD 和 -isystem
不会为“系统”路径添加依赖项 - sql - 如何在前缀和非前缀值中找到重复值?
- c++ - 创建单例类但获得未定义的引用
- javascript - 如何重新分配变量并再次运行代码
- json-c - 我是否必须释放 json_tokener_parse 返回的 json_object?
- java - 如何在 Java 中修复 SqlRowSet.Next() 上的“无效游标 SQL 异常”
- angular - Angular detectChanges 不适用于子组件
- android - 我在 java 文件中的哪里可以找到我用蓝色圈出的勾号的引用?
- php - 通过 ajax 使用 wordpress 获取视频