COUNT查询在使用时返回null
我正在构建一个在WordPress网站上运行的小型PHP脚本。COUNT查询在使用时返回null
我想查询我的表中有多少项目有特定的电子邮件。出于某种原因,它不起作用时,不使用where
语句,但一旦我添加WHERE [email protected]
,它将返回空值。我不知道为什么。
<?php
require('../wp-config.php');
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$email = $_GET['email'];
global $wpdb;
// This works
$countQuery = "SELECT COUNT(*) as count FROM `".$wpdb->prefix."mytable`";
// Once I add a filter, it returns null
$countQuery = $countQuery." WHERE `email`=`[email protected]`";
$rs = mysql_query($countQuery);
$result = mysql_fetch_array($rs);
// Later, I'd like to access $result['count']
// but the $result itself is NULL
var_dump("result", $result);
?>
我尝试添加以下行,看看我是否有任何错误,但没有额外的输出显示:
ini_set("display_errors", "1"); // shows all errors
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_reporting(E_ALL);
ini_set('display_errors', 'on');
如何解决这个问题?为什么这会出现?我不确定它是否与WordPress有任何关系,但由于仅仅通过添加WHERE [email protected]
就打破了功能。
这是太长的评论。
你的查询有一个错误:
SELECT COUNT(*) as count
FROM mytable -- simplified for illustration
WHERE `email` = `[email protected]`
如果你只是跑对数据库此查询时,它会说像[email protected]
是不是一个有效的列或类似的东西。
因此,第一条建议是测试您的查询。其次,如果你参数化你的查询 - 这是正确的事情 - 那么你永远不会有这个问题。使用参数值查询查询可能会导致难以解决语法问题(以及SQL注入漏洞)。
*您的查询有错误:* - 抱歉,这是错误? –
运行它并查看错误是什么。提示:你没有引用电子邮件名称,但这不是正确的解决方案。 –
啊,引号代替反引号。感谢那!唷!我没有直接访问数据库,我只使用PHP脚本与数据库进行通信。任何想法如何在未来检查此类错误?再次感谢,非常感谢! –
你使用的邮件反引号是用于列名..所以mysql认为电子邮件地址是列名..尝试使用单引号..周围的电子邮件 – scaisEdge
我看到这被标记为重复。我其实并不认为对“重复”的引用将有助于OP。 *答案*几乎是相同的答案,但*问题*完全不同。 –