Как мне обновить несколько таблиц, используя подготовленные операторы с MySQLi? - PullRequest
0 голосов
/ 13 июня 2009

У меня есть форма с двумя полями с атрибутом name 'photo_title' и 'photographer_name' и скрытым полем с именем 'photo_id'. Когда пользователь нажимает кнопку отправки, я хочу, чтобы он обновил две отдельные таблицы в базе данных. Я могу заставить его обновить одну таблицу, но как только я пытаюсь присоединиться ко второй таблице, она не нравится.

Я думаю, что-то не так с моей строкой запроса или привязкой. Как я могу обновить два отдельных значения в двух отдельных таблицах в моей базе данных 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>

1 Ответ

2 голосов
/ 15 июня 2009

Вот ответ, так что люди, которые читают этот вопрос, видят его, вместо того, чтобы найти его в своем комментарии выше. Я отмечу это CW, поэтому я не получаю за него баллов.

UPDATE photos LEFT JOIN photographers 
  ON photos.photographer_id = photographers.photographer_id 
SET photos.photo_title = ?, photographers.photographer_name = ? 
WHERE photos.photo_id = ?

FWIW, документация для синтаксиса UPDATE в MySQL является иллюстративной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...