【发布时间】:2016-02-23 18:45:50
【问题描述】:
// Sum of boys and girls for each school
function bgTotSkl($bgTotSkl_SchoolName, $conn) {
$bgTotSkl_Query = "SELECT SUM(result_studpoints) AS totalbg, stud_gender
FROM result
JOIN students ON result.stud_id WHERE result.stud_id = students.stud_id
AND stud_school = '$bgTotSkl_SchoolName'
GROUP BY stud_gender";
$mainQuery = mysqli_query($conn, $bgTotSkl_Query);
while ($data = mysqli_fetch_assoc($mainQuery)) {
echo bgTotSkl($bgTotSkl_SchoolName);
}
}
echo bgTotSkl("CCA");
上面的代码是一个包含mysql查询的函数。该查询应该计算我数据库中特定学校获得的男孩和女孩的总分。查询效果很好,我已经测试过了。
我查询中的变量也代表学校名称,所以当我想输出特定学校的总数时 例如:
echo bgTotSkl("CCA");
学校CCA将被放置在函数中,查询将从数据库中获取特定学校CCA的男孩和女孩的总分。
问题是我无法获得输出查询结果的函数,而且我不知道我的语法是否错误(我是否正确地在查询中实现了变量?)或整个逻辑错误(是 while循环完全错误?)或两者兼而有之。
提前致谢。
【问题讨论】:
-
警告:使用
mysqli时,您应该使用参数化查询和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您将创建严重的SQL injection bugs。 从不将$_POST数据直接放入查询中。 -
注意:使用 PHP 数据库对象 PDO
-
也叫
echo bgTotSkl("CCA",$conn);connection object is missing there