我在数据库字段(称为term6eyfs
)中有一个由数字组成的字符串 - > 555555。
我想知道他们中有多少人在特定位置有特定的数字。
我已尝试过以下代码,但我遇到了布尔给出的错误
$pos=2;
$analyse_ot="SELECT COUNT(*) AS ot_count FROM base, users
WHERE base.base_id=$base
AND
users.base_id=$base
AND
users.SUBSTRING(term6eyfs,$pos,1)='4'";
$result_ot=mysqli_query($con,$analyse_ot);
$row_ot = mysqli_fetch_assoc($result_ot);//this is where I get the error
$total_ot= $row_ot['ot_count'];
$otper=($total_ot/$total)*100;
我猜测他们构建我的查询(尤其是最后一行)是不正确的,但为什么呢?
答案 0 :(得分:2)
根据您在评论中提供的其他详细信息,我说这就是您要找的内容:
SELECT COUNT(*) AS ot_count
FROM base, users
WHERE base.base_id=$base
AND users.base_id=$base
AND SUBSTRING(users.term6eyfs,$pos,1)='4'";
(这假设" term6eyfs"是users
表中列的名称)
此查询的上下文不清楚。但总的来说,使用"参数绑定"将php变量值注入查询字符串。您想要了解它,它增强了安全性和健壮性。
如果您真的想使用,
运算符加入这两个表,还要重新考虑。该运算符非常慢,通常LEFT JOIN
传递很多更好的性能。
答案 1 :(得分:1)
将users.substring()更改为substring
$analyse_ot="SELECT COUNT(*) AS ot_count FROM base, users
WHERE base.base_id=$base
AND
users.base_id=$base
AND
SUBSTRING(term6eyfs,$pos,1)='4'";