我想执行两个语句并在while循环中打印结果。每个语句都将从两个不同的表中选择数据。
我不确定解决此问题的最佳方法。
到目前为止我的代码如下;
$conn = new mysqli('localhost', 'user', 'password', 'db');
if ($conn->connect_errno > 0) {
die('Unable to connect to database [' . $conn->connect_error . ']');
}
$curDate = date("Y-m-d");
//first stmt
$stmt = $conn->prepare("SELECT start, status FROM log WHERE start >= ?");
$stmt->bind_param('s', $curDate);
$stmt->execute();
$stmt->bind_result($start, $status);
$stmt->close();
//second stmt
$stmt = $conn->prepare("SELECT time FROM params");
$stmt->bind_result($time);
$stmt->execute();
$stmt->close();
/* fetch values and echo for testing */
while ($stmt->fetch()) {
echo $start;
echo $status;
echo $time;
}
感谢任何帮助。
答案 0 :(得分:0)
一般情况下,运行两个或十几个预准备语句时有无特别之处 - 您只需逐个运行它们。因此,没有最好的方式"一点都不。
在您的特定情况下,最好的方法是摆脱准备好的陈述:
$time = $conn->query("SELECT time FROM params")->fetch_object()->time;
$res = $conn->query("SELECT start, status FROM log WHERE start >= CURDATE()");
while($row = $res->fetch_object())
{
echo $row->start;
echo $row->status;
echo $time;
}