У меня возникли проблемы с выполнением второго подготовленного запроса после выполнения первой подготовленной хранимой процедуры. Я понимаю, что это потому, что я не могу буферизовать результаты в mySQL, но я не уверен, что именно я должен использовать, чтобы получить все результаты.
Я пробовал:
$stmt->store_result();
$stmt->fetch();
$stmt->bind_result($var1, $var2);
$stmt->free_result();
Но я все еще получаю ту же ошибку. Процедура работает нормально и предназначена только для возврата 1 строки, поэтому не уверен.
Полная ошибка:
Команды не синхронизированы; Вы не можете запустить эту команду сейчас
UPDATE:
Более соответствующий код:
$stmt = $mysqli->prepare('CALL createNewListing(?,?,?,?,?,?)');
$time = time();
$stmt->bind_param('sdssii', $listing['title'], $listing['price'], $_SESSION['user']['id'], $listing['description'], $time, $listing['featured']);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();
$stmt->bind_result($listing['primarypic']['id'], $listing['id']);
$stmt->free_result();
$stmt->close();
// Error is generated here.
$statement = $mysqli->prepare('INSERT INTO pictures (listid, primarypic) VALUES (?, ?)');
if (!$statement) {
echo $mysqli->error;
die();
}