我面对这个奇怪的问题。下面的代码不起作用。我只从0
获得Count
。我的12
行的预期输出为12
。
echo $userid = $row['userid']; // output is 130
mysqli_query($con, "SELECT COUNT(*) AS count FROM client WHERE userid = $userid");
但是,如果我将$userid
变量替换为integer
,它将起作用:
echo $userid = $row['userid']; // output is 130
mysqli_query($con, "SELECT COUNT(*) AS count FROM client WHERE userid = 130");
更新
$row['userid']
值取自其他列,列类型为int
。
我需要在查询中使用变量。请帮助我,并提前感谢。
更新
所以我使用下面的代码进行测试,我将130
分配给$test
。有用。
$test = 130;
mysqli_query($con, "SELECT COUNT(*) AS count FROM client WHERE userid = $test");
答案 0 :(得分:0)
我猜它与字符串类型的参数有关,你需要一个整数。还要算上'是一个保留字,可能会导致错误,而不是由您的代码处理。需要反复提示。
我建议使用预备语句。这是更安全,更好的做法,希望能解决您的问题。例如:
$userid = $row['userid'];
/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT COUNT(*) AS `count` FROM client WHERE userid =?")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "i", $userid);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $district);
/* fetch value */
mysqli_stmt_fetch($stmt);
答案 1 :(得分:0)
这很尴尬:
echo $userid = $row['userid']; // output is 130
继续并摆脱echo
声明。