Anonymous
SQLSTATE[HY093]: неверный номер параметра, извлеките данные из API [дубликат]
Сообщение
Anonymous » 22 июн 2024, 19:30
Я столкнулся с этой ошибкой при создании API, я хочу получить данные, которые можно фильтровать по двум категориям (cpNumber или partNumber).
это результат почтальона, код состояния 500
Код: Выделить всё
{"error":"Database error: SQLSTATE[HY093]: Invalid parameter number"}
это мой API, я пытался перейти на BindParam вместо BindValue и перейти на PARAM_STR, но это не сработало.
Код: Выделить всё
function searchItems($pdo, $searchTerm, $page = 1, $limit = 10) {
$offset = ($page - 1) * $limit;
$stmt = $pdo->prepare("SELECT id, oka, lot, part_no, qty_lot, tgl_trn, no_ctplan, idbarang, no_bpm, tgl_bpm, rev, ket_wi, keterangan
FROM wi_trn
WHERE part_no LIKE :searchTerm OR no_ctplan LIKE :searchTerm
LIMIT :limit OFFSET :offset");
$searchTermLike = "%$searchTerm%";
$stmt->bindValue(':searchTerm', $searchTermLike, PDO::PARAM_STR);
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchAll();
}
try {
// Inisialisasi koneksi PDO
$pdo = new PDO($dsn, $user, $pass, $options);
// Mengambil parameter dari request (contoh menggunakan GET parameter 'q' dan 'page')
$searchTerm = isset($_GET['q']) ? $_GET['q'] : '';
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
// Memanggil fungsi pencarian
$items = searchItems($pdo, $searchTerm, $page);
// Menghitung total item (tidak efisien, disarankan menggunakan COUNT() dalam query terpisah)
$totalItems = count($items);
// Menyiapkan respons JSON
$response = [
'status' => 'ok',
'currentPage' => $page,
'totalItems' => $totalItems,
'items' => $items
];
// Mengirim respons JSON
header('Content-Type: application/json');
echo json_encode($response, JSON_PRETTY_PRINT);
} catch (PDOException $e) {
// Tangani kesalahan PDO
http_response_code(500); // Set HTTP response code 500 untuk server error
echo json_encode(['error' => 'Database error: ' . $e->getMessage()]);
}
?>
большое спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/786 ... a-from-api
1719073848
Anonymous
Я столкнулся с этой ошибкой при создании API, я хочу получить данные, которые можно фильтровать по двум категориям (cpNumber или partNumber). это результат почтальона, код состояния 500 [code]{"error":"Database error: SQLSTATE[HY093]: Invalid parameter number"} [/code] это мой API, я пытался перейти на BindParam вместо BindValue и перейти на PARAM_STR, но это не сработало. [code]function searchItems($pdo, $searchTerm, $page = 1, $limit = 10) { $offset = ($page - 1) * $limit; $stmt = $pdo->prepare("SELECT id, oka, lot, part_no, qty_lot, tgl_trn, no_ctplan, idbarang, no_bpm, tgl_bpm, rev, ket_wi, keterangan FROM wi_trn WHERE part_no LIKE :searchTerm OR no_ctplan LIKE :searchTerm LIMIT :limit OFFSET :offset"); $searchTermLike = "%$searchTerm%"; $stmt->bindValue(':searchTerm', $searchTermLike, PDO::PARAM_STR); $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); return $stmt->fetchAll(); } try { // Inisialisasi koneksi PDO $pdo = new PDO($dsn, $user, $pass, $options); // Mengambil parameter dari request (contoh menggunakan GET parameter 'q' dan 'page') $searchTerm = isset($_GET['q']) ? $_GET['q'] : ''; $page = isset($_GET['page']) ? intval($_GET['page']) : 1; // Memanggil fungsi pencarian $items = searchItems($pdo, $searchTerm, $page); // Menghitung total item (tidak efisien, disarankan menggunakan COUNT() dalam query terpisah) $totalItems = count($items); // Menyiapkan respons JSON $response = [ 'status' => 'ok', 'currentPage' => $page, 'totalItems' => $totalItems, 'items' => $items ]; // Mengirim respons JSON header('Content-Type: application/json'); echo json_encode($response, JSON_PRETTY_PRINT); } catch (PDOException $e) { // Tangani kesalahan PDO http_response_code(500); // Set HTTP response code 500 untuk server error echo json_encode(['error' => 'Database error: ' . $e->getMessage()]); } ?> [/code] большое спасибо. Подробнее здесь: [url]https://stackoverflow.com/questions/78656602/sqlstatehy093-invalid-parameter-number-fetch-data-from-api[/url]