SQLSTATE[HY093]: неверный номер параметра, извлеките данные из API [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 SQLSTATE[HY093]: неверный номер параметра, извлеките данные из API [дубликат]

Сообщение Anonymous »

Я столкнулся с этой ошибкой при создании 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»