我在将 where 子句纳入 COUNT 查询时遇到问题。
这可以获取表的总数:
$search = $_POST['search_text'];
SELECT COUNT(*)
FROM
stories')
->fetchColumn();
但是,当我尝试添加 WHERE Stories.category = $search 时,当我尝试其中任何一个时,我会遇到语法错误:
$total = $dbh->query('
SELECT
COUNT(*)
FROM
stories
WHERE
stories.category = "$search"
');
->fetchColumn();
FROM
stories
WHERE stories.category='$search'
FROM
stories
WHERE (stories.category="$search")
最佳答案
您可以在双引号内使用变量,但必须使用串联才能在单引号内使用变量。 (例如 '我的字符串 '.$myvar.' 还有一些字符串')
SQL 需要格式为 '' 或 ""的字符串,因此您可以互换使用它们或使用转义引号...
你可以像这样在单引号和双引号内转义...
" \" <--- puts a quote in without terminating the string "
' \' <--- same with single quotes '
$total = $dbh->query("
SELECT
COUNT(*)
FROM
stories
WHERE
stories.category = \"$search\"
")
->fetchColumn();
或者
$total = $dbh->query("
SELECT
COUNT(*)
FROM
stories
WHERE
stories.category = '$search'
")
->fetchColumn();
或者
$total = $dbh->query("
SELECT
COUNT(*)
FROM
stories
WHERE
stories.category = '".$search."'
")
->fetchColumn();
或者
$total = $dbh->query('
SELECT
COUNT(*)
FROM
stories
WHERE
stories.category = \''.$search.'\'
')
->fetchColumn();
而且,你不能这样做...
');
->fetchColumn();
您以分号终止,然后尝试调用对象方法。
关于php - 将 WHERE 原因添加到 COUNT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29044111/