У меня есть форма с двумя полями с атрибутом name 'photo_title' и 'photographer_name' и скрытое поле с именем 'photo_id'. Когда пользователь нажимает кнопку отправки, я хочу, чтобы она обновляла две отдельные таблицы в базе данных. Я могу заставить его обновить одну таблицу, но как только я попытаюсь уйти со второй таблицы, ей это не нравится.Как обновить несколько таблиц с помощью подготовленных инструкций с помощью mySQLi?
Я думаю, что может быть что-то не так с моей строкой запроса или привязкой. Как я могу обновить два отдельных значения в двух отдельных таблицах в моей базе данных Mysql, все еще используя подготовленные операторы?
Вот PHP:
if (array_key_exists('update', $_POST)) {
$sql = 'UPDATE photos SET photos.photo_title = ?, photographers.photographer_name = ?
LEFT JOIN photographers ON photos.photographer_id = photographers.photographer_id
WHERE photo_id = ?';
$stmt = $conn->stmt_init();
if ($stmt->prepare($sql)) {
$stmt->bind_param('ssi', $_POST['photo_title'], $_POST['photographer_name'], $_POST['photo_id']);
$done = $stmt->execute();
}
}
Вот форма:
<form id="form1" name="form1" method="post" action="">
<input name="photo_title" type="text" value=""/>
<textarea name="photographer_name"></textarea>
<input type="submit" name="update" value="Update entry" />
<input name="photo_id" type="hidden" value="<?php echo $photo_id ?>"/>
</form>
Я понял свою ошибку. У меня были команды SQL в неправильном порядке. Строка запроса следует читать $ SQL = «UPDATE фотографии \t \t \t \t LEFT JOIN фотографы \t \t \t \t НА photos.photographer_id = photographers.photographer_id \t \t \t \t SET photos.photo_title =?, Photographers.photographer_name знак равно \t \t \t \t ГДЕ photos.photo_id =? '; – zeckdude