SQL计数返回0

时间:2019-05-09 10:32:48

标签: php mysql sql

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

enter image description here

我正在尝试以下查询

$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个条目。

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:2)

反斜杠\引起了问题。

通过$path方法运行addslashes()变量。

addslashes() documentation

答案 2 :(得分:-2)

尝试对此

$result = mysqli_query($con,"SELECT COUNT(path) FROM mytable WHERE username='Rbiaali' AND path='C:\MAMP\htdocs\files\Rbiaali\9-5-2019 01 55 AM.zip'");
$value = mysqli_fetch_object($result);
$data = $value->id;