Php Mysqli“;选择*FROM";环
目前我正在跳转到mysqli/PDO,并将SELECT循环从“old”方法转换为mysqli “旧”方法:Php Mysqli“;选择*FROM";环,php,select,mysqli,Php,Select,Mysqli,目前我正在跳转到mysqli/PDO,并将SELECT循环从“old”方法转换为mysqli “旧”方法: $query=“按id从交易订单中选择*描述限制10”; $result=mysql\u query($query); $num=mysql\u num\u行($result); $i=0; 而($iprepare('SELECT*FROM transactions,其中status=?')){ $pending_stmt->bind_param('s',$status);//$statu
$query=“按id从交易订单中选择*描述限制10”;
$result=mysql\u query($query);
$num=mysql\u num\u行($result);
$i=0;
而($i<$num){
$f1=mysql_result($result,$i,“name”);
$f2=mysql_result($result,$i,“姓氏”);
$f3=mysql_result($result,$i,“pcode”);
$f4=mysql_结果($result,$i,“事务_id”);
$f5=mysql_result($result,$i,“articles”);
$f6=mysql_结果($result,$i,“交付”);
//到这里的桌子上去
$i++;
}
我得到了基本的mysqli查询,然后简单地尝试复制上面的while循环:
if ($pending_stmt=$mysqli->prepare('SELECT * FROM transactions WHERE status = ?')) {
$pending_stmt->bind_param('s', $status); //$status is set prior to if statement
$pending_stmt->execute();
$pending_stmt->store_result();
$pending_stmt->fetch_all();
$rows=$pending_stmt->num_rows();
$i=0;
while ($i < $rows) {
$f1=$pending_stmt->fetch($i,'pcode');
//echo out to table here
$i++;
}
}
if($pending_stmt=$mysqli->prepare('SELECT*FROM transactions,其中status=?')){
$pending_stmt->bind_param('s',$status);//$status在if语句之前设置
$pending_stmt->execute();
$pending_stmt->store_result();
$pending_stmt->fetch_all();
$rows=$pending_stmt->num_rows();
$i=0;
而($i<$rows){
$f1=$pending_stmt->fetch($i,'pcode');
//到这里的桌子上去
$i++;
}
}
不用说,它不起作用了。。。经过多次搜索,我想知道是否有人愿意给我一些建议。试试看
$pending_stmt->execute(array($status));
$result = $pending_stmt->fetchAll();
我不明白为什么要使用count变量,请为每个变量尝试一个:
foreach($result as $item) {
$f1 = $item['pcode'];
}
难怪它不起作用。你把一切都搞混了。您不需要
store_result()
,fetch_all()
或num_rows()
fetch()
无法像mysql\u result()
那样导航到特定的行和列。你有两个选择如何解决它
get\u result()
store\u result()
,bind\u result()
和fetch()
你能不能说得更清楚一点“它不起作用”?它不起作用。。。因为它没有返回任何结果。我尝试过这个,但没有效果。我正在查看bind_result()atm。请参阅apache错误日志。这应该是可行的,如果没有,请尝试查看您是否正确设置了$mysqli。
foreach($result as $item) {
$f1 = $item['pcode'];
}
$pending_stmt = $mysqli->prepare('SELECT columnA, columnB FROM transactions WHERE status = ?');
$pending_stmt->bind_param('s', $status); //$status is set prior to if statement
$pending_stmt->execute();
$result = $pending_stmt->get_result();
foreach ($result as $row) {
echo $row['columnA'];
echo $row['columnB'];
}
$pending_stmt = $mysqli->prepare('SELECT columnA, columnB FROM transactions WHERE status = ?');
$pending_stmt->bind_param('s', $status); //$status is set prior to if statement
$pending_stmt->execute();
$pending_stmt->store_result(); // recommended, but not necessary
$pending_stmt->bind_result($f1, $f2);
while ($pending_stmt->fetch()) {
echo $f1;
echo $f2;
}