Пример запроса SELECT с переменными связывания - PullRequest
2 голосов
/ 29 апреля 2010

Я пытаюсь связать входные параметры в свой запрос SELECT, а затем извлечь полученные строки, но MySQLi, похоже, отличается от других API, к которым я привык, и я теряюсь в руководстве по PHP.

Правильный ли следующий подход?

$sql = 'SELECT product_id, product_name, area_id
    FROM product
    WHERE product_id = ?';
$stmt = $myMySQLi->prepare($sql);
if(!$stmt){
    throw new Exception('Prepare error');
}
if( !@$stmt->bind_param('i', $product_id) ){
    throw new Exception('Bind error');
}
if( !$stmt->execute() ){
    throw new Exception('Execute error');
}

Если это так, как мне выбрать строки в ассоциативные массивы? Если я слишком усложняю, как мне поступить?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2010

mysqli не предоставляет способ извлечения результатов в массив. Если вы хотите эту функцию, у вас есть два варианта:

  1. расширить mysqli и написать метод fetchAll
  2. используйте pdo с этого момента

подсказка: используйте pdo

просто пытаюсь сделать вашу жизнь проще.

читать это

3 голосов
/ 29 апреля 2010

Используя bind_result, вы можете отобразить результаты в переменные:

$stmt->bind_result($product_id, $product_name, $area_id);
while ($stmt->fetch()) {
    echo $product_id . ": " . $product_name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...