bind_param困难

时间:2012-04-05 03:54:41

标签: php mysql mysqli

我遇到问题以下代码没有给我带来任何结果。但是,如果我取消注释指示的行,并注释掉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;
}

1 个答案:

答案 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

快乐的编码!!