php - 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 个条目。
解决方案
您需要转义反斜杠,因为反斜杠是 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();
推荐阅读
- c++ - 发生了什么:C++ std::move on std::shared_ptr 增加了 use_count?
- java - 如何修复休眠配置中的 NPE?
- c - 为什么这个人使用 (1 << 0)?
- routing - TYPO3 Route Enhancers:列表(带有可选的分页和过滤器)+同一页面上的详细信息
- amazon-web-services - AWS S3 Select - 从 2 个不同级别的 json 检索数据
- java - 如何使用@StartNode 关系查询 Neo4jRepository?
- pytorch - 以表达式为条件使用“with torch.no_grad()”的更简洁方法
- android - 使用 RxJava2 同步上传文件
- typescript - 导出类的构造函数的参数已经或正在使用私有名称''(空字符串)ts(4063)
- scala - spark版本[2.4.0]和[2.4.0.cloudera2]有什么区别