![](/img/trans.png)
[英]Using MySQLi prepared statements in PHP, getting “No data supplied for parameters in prepared statement ”
[英]PHP MySQLi prepared statement getting row, but not displaying data
我正在嘗試使用ID從另一個數據庫值中獲取一些數據。 這是我的代碼:
$query = "SELECT id,uid,product,jpgID,saledatetime,quantity
FROM sales
WHERE printed = ?
AND DATE_FORMAT(saledatetime, '%Y/%m/%d') = ?";
if ($stmt = $mysqli->prepare($query)) {
$printed = 0;
$stmt->bind_param("is",$printed,$session_date);
$stmt->execute();
$stmt->store_result();
//Get result
$stmt->bind_result($result_id,$result_uid,$result_product,$result_jpgID,$result_saledatetime,$result_quantity);
//Number of rows returned
$count_rows = $stmt->num_rows;
if ($stmt_fetch = $mysqli->prepare("SELECT jpg,udate,imageset FROM images WHERE id = ?")) {
//Fetch image information
while ($stmt->fetch()) {
$stmt_fetch->bind_param('i',$result_jpgID);
$stmt_fetch->execute();
$stmt_fetch->store_result();
$stmt_fetch->bind_result($jpg,$udate,$imageset);
echo $stmt_fetch->num_rows."<br />";
//Create array's with information
$print[$result_product][$result_jpgID]["quantity"] = $result_quantity;
$print[$result_product][$result_jpgID]["location"] = $jpg;
}
}
$stmt->close();
print_r($print);
}
echo $stmt_fetch->num_rows."<br />";
每次循環時顯示1,因此找到了匹配的行。 但是由於某種原因,所有綁定變量都沒有任何值...這是顯示的結果:
1
1
1
Array
(
[KR] => Array
(
[137] => Array
(
[quantity] => 1
[location] =>
)
[138] => Array
(
[quantity] => 1
[location] =>
)
)
[LR] => Array
(
[138] => Array
(
[quantity] => 1
[location] =>
)
)
)
設法解決它,這是我的固定代碼。
if(login_check($mysqli) == true) {
//logged in
$session_date = $_SESSION['session_date'];
$query = "SELECT id,uid,product,jpgID,saledatetime,quantity
FROM sales
WHERE printed = ?
AND DATE_FORMAT(saledatetime, '%Y/%m/%d') = ?";
if ($stmt = $mysqli->prepare($query)) {
$printed = 0;
$stmt->bind_param("is",$printed,$session_date);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($result_id,$result_uid,$result_product,$result_jpgID,$result_saledatetime,$result_quantity);
$count_rows = $stmt->num_rows;
while ($stmt->fetch()) {
//Create array's with information
$print[$result_product][$result_jpgID]["quantity"] = $result_quantity;
}
$stmt->close();
foreach ($print as $key1 => $value1) {
foreach ($print[$key1] as $key => $value) {
if ($stmt = $mysqli->prepare("SELECT jpg,udate,imageset FROM images WHERE id = ?")) {
$stmt->bind_param('i',$key);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($jpg,$udate,$imageset);
}
while ($stmt->fetch()) {
$print[$key1][$key]['location'] = $jpg;
}
}
}
print_r($print);
}
} else {
header("Location: index.php");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.