【问题标题】:Fetching rows with a certain enum status [duplicate]获取具有特定枚举状态的行[重复]
【发布时间】:2021-05-21 10:35:05
【问题描述】:

我正在尝试在我的管理仪表板上显示(已完成维修 = ?),以根据状态列显示已完成的笔记本电脑维修次数。

<?php
$pdo = new PDO(
'mysql:host=127.0.0.1;dbname=MYAPP',
'MYUSERNAME',
'MYPASSWORD'
);

//The COUNT SQL statement that we will use.
$sql = "SELECT COUNT(*) FROM repairs WHERE current_status > Repair Completed";

//Prepare the COUNT SQL statement.
$stmt = $pdo->prepare($sql);

//Execute the COUNT statement.
$stmt->execute();

//Fetch the row that MySQL returned.
$row = $stmt->fetch(PDO::FETCH_ASSOC);

//The $row array will contain "num". Print it out.
echo $row['num'];
?>

但我收到此错误:注意:尝试访问第 208 行 PATH_TO_PHP_FILE.php 中 bool 类型值的数组偏移量

第 208 行是:

echo $row['num'];

我是个新手,所以我不知道在这里做什么。

我正在使用“num”,因为我想获取状态为“Repair Completed”的行数。

我在 stackoverflow 上看了一圈,但我并没有真正理解它。

我的代码中缺少什么?任何帮助将不胜感激。

【问题讨论】:

  • 您的current_status &gt; Repair Completed 似乎有语法错误。 RepairCompleted 是什么?
  • Repair Completed 是一个 ENUM 值
  • 我认为您需要将其括在引号中以使其成为字符串文字。或者,如果这是一个带有空格的列名,那么您需要将其包装在反引号中。

标签: php mysql pdo crud


【解决方案1】:

您的 sql 请求似乎错误,所以它返回 false try

$sql = "SELECT COUNT(*) FROM repairs WHERE current_status = 'Repair Completed'"

然后执行 $row 的 var_dump

【讨论】:

    猜你喜欢
    • 2012-08-11
    • 2022-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    相关资源
    最近更新 更多