我正在尝试使用mysqli进行一个非常简单的查询。这让我很生气!
我只希望$data
成为sql查询中值的数组。
这是我的代码......
$req = $app->request();
$hashtag = $req->get('hashtag');
require_once 'Slim/lib/database.php';
$db = connect_db();
$statement = $db->prepare("SELECT `content` FROM `posts` WHERE `content` LIKE ?");
$newhashtag = '%#' . $hashtag . '%';
$statement -> bind_param("s", $newhashtag);
$statement -> execute();
$statement -> bind_result($result);
while ( $row = mysqli_fetch_array($statement) ) {
$data[] = $row;
}
print_r($data);
$statement -> close();
我只是收到错误mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given
,并且使用$result
$statement
或fetch_array
没有任何区别
答案 0 :(得分:1)
对于遇到此问题并发现所接受的解决方案不起作用的任何人(它对我来说都没有)。
然后试试这个:
app.controller("loginCtrl", function(**$**scope){
})
这使用get_result()
function,它用于从预准备语句中获取结果。
这是在while循环之外初始化并分配给一个新变量,在本例中为$statement = $db->prepare("SELECT `content` FROM `posts` WHERE `content` LIKE ?");
$newhashtag = "%#$hashtag%";
$statement->bind_param("s", $newhashtag);
$statement->execute();
$result = $statement->get_result();
while ($row = $result->fetch_assoc())
{
$data[] = $row;
}
然后$result
被分配给$result->fetch_assoc()
,并且可以在循环内访问。从数组中访问每列作为键,以便$row
将从该列下的每一行返回内容
答案 1 :(得分:-1)
替换这些行:
while ( $row = mysqli_fetch_array($statement) ) {
$data[] = $row;
}
用这些:
while ($row = $statement->fetch()) {
$data[] = $row;
}