我最近从 mysql 切换到 mysqli 并开始使用准备好的语句。 在 mysql 中我们做
$result = mysql_query("SELECT * FROM table WHERE id = ?");
所以我们在一个变量中得到了整个表的数组。
但是在 mysqli 中我们可以
mysqli_stmt_bind_result($stmt, $result);
所以基本上这里只有一个变量绑定(bind)到变量结果。
我们如何获得与从 mysql 中获取的相同的变量(数组)?
PS - 希望我的问题足够清楚。我知道他们可能的方法不多,但我正在寻找最好的方法。
PSS - 我更喜欢程序化的方式。
最佳答案
终于这个代码是工作!!!!!
<?php
$host = 'localhost';
$user = 'root';
$pass = '1234';
$data = 'test';
$mysqli = new mysqli($host, $user, $pass, $data);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = $mysqli->prepare("SELECT * FROM sample WHERE t2 LIKE ?")) {
$tt2 = '%';
$stmt->bind_param("s", $tt2);
$stmt->execute();
$meta = $stmt->result_metadata();
while ($field = $meta->fetch_field())
{
$params[] = &$row[$field->name];
}
call_user_func_array(array($stmt, 'bind_result'), $params);
while ($stmt->fetch()) {
foreach($row as $key => $val)
{
$c[$key] = $val;
}
$result[] = $c;
}
$stmt->close();
}
$mysqli->close();
print_r($result);
?>
关于php - Mysqli - 将结果绑定(bind)到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24363755/