Php mysqli使用while循环准备语句
我正在尝试使用mysqli进行一个非常简单的查询。它快把我逼疯了 我只希望Php mysqli使用while循环准备语句,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试使用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` WHE
$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\u fetch\u array()期望参数1是mysqli\u result,给定为null
,在fetch\u array上使用$result
或$statement
替换以下行:
while ( $row = mysqli_fetch_array($statement) ) {
$data[] = $row;
}
有了这些:
while ($row = $statement->fetch()) {
$data[] = $row;
}
对于任何遇到这个问题并发现公认的解决方案不起作用的人(对我来说不起作用)
然后试试这个:
$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;
}
这将使用,用于从准备好的语句中获取结果
这在while循环外初始化并分配给一个新变量,在本例中为$result
然后将$result->fetch_assoc()
分配给$row
,并可在循环中访问。从数组中以键的形式访问每一列,这样$row[“content”]
将返回该列下每一行的内容当您已经有$statement->bind\u result($result)
您的代码返回此数组数组([0]=>1[1]=>1)时,为什么要使用while循环
-看起来仍然错误,请注释掉$语句->绑定结果($result)代码>零件,然后尝试更新的while循环。注意:在您的评论之后,我更新了while循环。