首页 > 解决方案 > SQL 计数返回 0

问题描述

我一直在尝试计算表中存在的路径数。

在此处输入图像描述

我正在尝试以下查询

$db_con->query("SELECT COUNT(path) FROM mytable WHERE username='Rbiaali' AND path='C:\MAMP\htdocs\files\Rbiaali\9-5-2019 01 55 AM.zip'")->fetchColumn();

此外,即使我使用下面的它返回相同的值:0

path LIKE 'C:\MAMP\htdocs\files\Rbiaali\9-5-2019 01 55 AM.zip%'

如表中所示,我们可以看到路径中有 6 个条目。

标签: phpmysqlsql

解决方案


您需要转义反斜杠,因为反斜杠是 MySQL 中的转义字符。\f是换页符。

$db_con->query("SELECT COUNT(path) FROM mytable WHERE username='Rbiaali' AND path='C:\\MAMP\\htdocs\\files\\Rbiaali\\9-5-2019 01 55 AM.zip'")->fetchColumn();

如果您从变量中获取路径,请使用准备好的语句:

$stmt = $db_con->prepare("SELECT COUNT(path) FROM mytable WHERE username=:user AND path=:path");
$stmt->execute([":user" => $u, ":path" => $p]);
$stmt->fetchColumn();

推荐阅读