我无法将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")
答案 0 :(得分:0)
您可以在双引号内使用变量,但必须使用连接才能在单引号内使用一个变量。 (例如...'我的字符串'。$ 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();
OR
$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();
您使用半冒号终止,然后尝试调用对象方法。