我遇到问题以下代码没有给我带来任何结果。但是,如果我取消注释指示的行,并注释掉bind_param行,它可以工作,但是这不是为了击败mysqli的目的吗? 我的var_dump给了我的字符串(1)“1”
function teams($mysqli, $league_id) {
echo 'league id = ' . var_dump($league_id);
$sql = "SELECT team_id, team_name FROM teams where league_id='?'";
// $sql = "SELECT team_id, team_name FROM teams where league_id='".$league_id."'";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('i', $league_id);
$stmt->execute();
$stmt->bind_result($col1, $col2);
while($stmt->fetch()) {
$results[] = array(
'team_id' => $col1,
'team_name' => $col2
);
}
$stmt->close();
var_dump($results);
return $results;
}
答案 0 :(得分:2)
函数bool mysqli_stmt :: bind_param(string $ types,mixed& $ var1 [,mixed& $ ...])
接受以下$ types
类型规范字符
字符描述
i对应变量的类型为整数
d对应变量的类型为double
对应的变量具有类型字符串
b对应的变量是一个blob,将以数据包的形式发送
您将$ types指定为'i'并将值作为字符串用单引号赋予。删除引号并尝试将$ league_id转换为int值。
http://php.net/manual/en/mysqli-stmt.bind-param.php
快乐的编码!!