Php mysql\u查询函数仅适用于mysql\u num\u行
我今天有一个很奇怪的问题。我有一段代码,它根据从用户输入传递的GET变量查询表(相当标准)Php mysql\u查询函数仅适用于mysql\u num\u行,php,google-visualization,mysql-num-rows,Php,Google Visualization,Mysql Num Rows,我今天有一个很奇怪的问题。我有一段代码,它根据从用户输入传递的GET变量查询表(相当标准) 然而,为了实现这一点,我必须包含一个冗余的mysql\u num\u rows变量 这是有效的; 在“选择并使用索引”中指定列。 并确保$\u GET值已验证。 您可能已经这样做了,但请尝试在phpMyAdmin中进行查询。 也许这一切都会有帮助 SELECT material, quantity, colour FROM stock WHERE Categor
然而,为了实现这一点,我必须包含一个冗余的mysql\u num\u rows变量 这是有效的;
在“选择并使用索引”中指定列。
并确保$\u GET值已验证。
您可能已经这样做了,但请尝试在phpMyAdmin中进行查询。
也许这一切都会有帮助
SELECT
material,
quantity,
colour
FROM
stock
WHERE
Category = ...
ORDER BY ..
;
挑选
材料,
量
颜色
从…起
股票
哪里
类别=。。。
订货人。。
;
请已在PHP7中删除。了解使用PDO的语句并考虑使用,OK,这很好,但这不是问题所在。虽然不太理想,但旧的mysql仍然可以正常工作,而改为mysqli并不能解决这个问题。我无法复制您的问题,即使我恢复到旧的mysql API,它也可以正常工作。你的代码中肯定还有其他东西。我添加了更多的代码,但我知道所有谷歌图表的内容,而且“获取传递”工作正常。问题在于获取查询。我在phpMyAdmin中测试了该查询,它可以工作,但我尝试实现了您的查询,结果它完全停止了工作。真的很奇怪。作为参考,我将错误计算为google图表未加载(错误数据0不能是字符串)。您在phpMyAdmin中得到错误了吗?它说什么?我询问了你的建议(忽略order by),它返回了正确的结果。但是,当我接下那条语句并替换上面的$query行时(记得把变量$cat放回去),它就停止工作了。我开始认为这可能是谷歌图表的事情,但这没有意义,因为我在那一部分有功能齐全的数据类型检查,而且它也不能解释为什么第三行能起作用?
<?php
$cat = strval($_GET['c']);
$query = "SELECT * FROM stock WHERE Category = '$cat'";
LINE UNDER QUESTION --> $num_rows = mysql_num_rows(mysql_query($query));
$values = mysql_query($query);
$material = array();
$quantity = array();
$colour = array();
while ($row = mysql_fetch_array($values)) {
array_push($material, $row['Material']);
array_push($quantity, $row['Quantity']);
array_push($colour, $row['Colour']);
}
...Then all the google chart stuff....
?>
SELECT
material,
quantity,
colour
FROM
stock
WHERE
Category = ...
ORDER BY ..
;