对我来说,决定性的因素是我是否使用调用查询列
*。
bind_result()为此,使用会更好:
// Use bind_result() with fetch()$query1 = 'SELECt id, first_name, last_name, username FROM table WHERe id = ?';
get_result()为此,使用会更好:
// Use get_result() with fetch_assoc() $query2 = 'SELECt * FROM table WHERe id = ?';
示例1
$query1使用
bind_result()
实施例2对于$query1 = 'SELECt id, first_name, last_name, username FROM table WHERe id = ?';$id = 5;if($stmt = $mysqli->prepare($query)){ $stmt->bind_param('i',$id); $stmt->execute(); $stmt->store_result(); $num_of_rows = $stmt->num_rows; $stmt->bind_result($id, $first_name, $last_name, $username); while ($stmt->fetch()) { echo 'ID: '.$id.'<br>'; echo 'First Name: '.$first_name.'<br>'; echo 'Last Name: '.$last_name.'<br>'; echo 'Username: '.$username.'<br><br>'; } $stmt->free_result(); $stmt->close();}$mysqli->close();
$query2使用
get_result()
$query2 = 'SELECt * FROM table WHERe id = ?'; $id = 5;if($stmt = $mysqli->prepare($query)){ $stmt->bind_param('i',$id); $stmt->execute(); $result = $stmt->get_result(); $num_of_rows = $result->num_rows; while ($row = $result->fetch_assoc()) { echo 'ID: '.$row['id'].'<br>'; echo 'First Name: '.$row['first_name'].'<br>'; echo 'Last Name: '.$row['last_name'].'<br>'; echo 'Username: '.$row['username'].'<br><br>'; } $stmt->free_result(); $stmt->close();}$mysqli->close();
正如你所看到的,你不能使用
bind_result带
*。但是,
get_result两者均可使用,但
bind_result更简单,并且消除了一些麻烦
$row['name']。
bind_result()
优点:
- 更简单
- 不用惹
$row['name']
- 用途
fetch()
缺点:
- 不适用于使用
*
get_result()
优点:
- 适用于所有SQL语句
- 用途
fetch_assoc()
缺点:
- 必须搞乱数组变量
$row[]
- 不那么整齐
- 需要MySQL本机驱动程序(mysqlnd)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)