我有一個用 PHP 撰寫的作業 API,我的代碼作業正常,但我需要將引數傳遞給 API。但它沒有按預期作業。在我的 readOrders 函式中,我獲得了所有訂單,但現在我想獲得所有訂單的 id 高于從訪問 api 的 url 傳遞的特定數字。
function getOrders($last_oid){
$stmt = $this->con->prepare("SELECT oid, uid, order_num, create_date, status_date FROM orders WHERE oid > ?");
$stmt->execute($last_oid);
$stmt->bind_result($oid, $uid, $order_num, $create_date, $status_date);
$orders = array();
while($stmt->fetch()){
$order = array();
$order['oid'] = $oid;
$order['uid'] = $uid;
$order['order_num'] = $order_num;
$order['create_date'] = $create_date;
$order['status_date'] = $status_date;
array_push($orders, $order);
}
return $orders;
}
當我沒有引數時,我收到了所有訂單$last_oid。該引數用于獲取帶有 id 的訂單WHERE id>?并在 execute() 中傳遞 last_id。
在我的 API 呼叫中,我正在傳遞last_id,它目前是硬編碼的,完成后我將使用它$_GET來獲取值并將其傳遞給函式。
//the READ operation
//if the call is get orders
case 'getOrders':
$db = new DbOperation();
$response['error'] = false;
$response['message'] = 'Request orders successfully completed';
$response['orders'] = $db->getOrders(504);
break;
我不確定我做錯了什么。我得到一個空的 json,但我應該得到一些行。
uj5u.com熱心網友回復:
您在代碼中有錯誤。您正在執行“準備好的陳述句”,但陳述句錯誤。像這樣嘗試:
function getOrders($last_oid)
{
try {
$orders = array();
$stmt = $this->con->prepare("SELECT oid, uid, order_num, create_date, status_date FROM orders WHERE oid > ?");
// I assume $ last_oid is an integer.
$stmt->bind_param("i", $last_oid);
if ($stmt->execute()) {
$result = $stmt->get_result();
// use the while loop to load the result set
while ($row = $result->fetch_assoc()) {
array_push($orders, array(
'oid' => $row['oid'],
'uid' => $row['uid'],
'order_num' => $row['order_num'],
'create_date' => $row['create_date'],
'status_date' => $row['status_date']
));
}
return $orders;
}
} catch (Exception $ex) {
print $ex->getMessage();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/325929.html
