我有一个如下所示的mysql查询
SELECT count(id) as total,
MIN(product_price) as min_price,
MAX(product_price) as max_price
FROM `products_details`
WHERE subcat_id = 425
AND MATCH(alternate_name, product_desc, keywords) AGAINST ('+gas +(>lighter <lighters)' IN BOOLEAN MODE)
根据表记录,此查询的返回计数值应为 7 。
但是当我在我的网站上使用php执行此查询时,它将计数值返回为 59 。
当我直接将此查询运行到phpmyadmin时,我得到了正确的结果。
任何人都可以告诉我为什么会遇到这种问题,我该如何解决这个问题。
注意: 当我在phpmyadmin中运行时,如下所示更改此查询时,我得到了错误的结果59。
SELECT count(id) as total,
MIN(product_price) as min_price,
MAX(product_price) as max_price
FROM `products_details`
WHERE subcat_id = 425
AND MATCH(alternate_name, product_desc, keywords) AGAINST ('+gas +(>lighter <lighters)' IN BOOLEAN MODE)
使用php执行此查询的方法,如下所示
if (!isset($connection))
die('Database connection is not valid');
$result = @mysql_query($sql, $connection) or die('Could not connect: ' . mysql_error() . ' :: executeQuery');
if (!$result)
return;
if (!@mysql_num_fields($result))
return false;
else {
$result = $result;
}
if (!isset($result))
die('Error in Query');
else {
$ret = null;
if ($object = mysql_fetch_object($result)) {
$ret = $object;
}
mysql_free_result($result);
return $ret;
}
答案 0 :(得分:0)
>
是>
的“htmlentity”。如果>
实际上在查询中,那么它不太可能按预期工作。决定来自哪里并避免它。