1

我在我的 SQL WHERE 子句中使用变量时遇到问题。我收到此错误:

警告:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源

代码是:

$sql3= mysql_query("SELECT COUNT($ww) FROM data WHERE $".$ww." =  ".$weeknumber." "); 

我究竟做错了什么?

4

5 回答 5

1

为什么不通过将列名放在 COUNT(column_name) 中来计算表列?

像这样:

$sql3= mysql_query("SELECT COUNT(week_num) as wknum FROM data WHERE '$ww' =  '$weeknumber'"); 
$counted_weeks["week_num"]

// $counted_weeks["week_num"] will output your sum
//week_num would be a column name from your "data" table
于 2012-04-06T19:05:46.390 回答
0

我猜$ww是指一个列名。$weekNumber显然是价值。在这种情况下,您的 SQL 查询应如下所示:

$sql3= mysql_query("SELECT COUNT(".$ww.") FROM data WHERE ".$ww." = ".$weeknumber." ");

我不是 PHP 人,但我假设你有正确的 PHP 语法。

于 2012-04-06T18:00:25.543 回答
0

我建议查看此链接。正如@Crontab 提到的,我不确定为什么你的 where 子句前面有一个美元符号。

需要指出的其他几件事:正如链接中所说,您需要确保查询文本已正确转义。另外,如果我没记错(不熟悉 PHP),您是否需要明确连接文本而不是仅使用引号?(即,而不是“SELECT ...” ...“你需要做“SELECT ...”+“...”)

于 2012-04-06T18:04:30.247 回答
0

php 字符串格式化在这里是完美的,把你混乱的 concat 字符串,让它干净易读!

$sql3= mysql_query(sprintf("SELECT COUNT(%s) FROM data WHERE %s=%d", $ww, $ww, $weeknumber));
于 2012-04-06T18:11:54.190 回答
0

假设这$ww是一个有效的列名并且$weekNumber是一个整数,这应该有效:

$query = "SELECT COUNT(*) AS cnt FROM data WHERE $ww = '$weekNumber'";
$rs = mysql_query($query);
$r = mysql_fetch_assoc($rs);
echo "Count: {$r['cnt']}";
于 2012-04-06T18:12:58.807 回答