Я делаю обновление, используя две таблицы, но по какой-то причине оно не работает и не генерирует ошибку, поэтому я не могу найти проблему. Кто-нибудь может пролить свет на это? Почему это не работает?
$upd = "
UPDATE table t
, images i
SET t.image_blob = i.image_blob
WHERE t.record_id='".$rid."'
AND i.image_id='".$iid."'";<br>
$dbh->exec($upd);
Другими словами, я хочу взять конкретную запись из таблицы изображений (где находится image_id=$iid) и обновить таблицу (t), где находится record_id=$rid.
Вам не нужно ключевое слово table, просто UPDATE t, images i...
Ваш стол действительно называется table? Это зарезервированное слово, и его нельзя использовать в качестве идентификатора без кавычек с обратными кавычками. Но лучше было бы просто переименовать, если можно. dev.mysql.com/doc/refman/5.7/en/keywords.html
mysqli и PDO, где любые предоставленные пользователем данные указываются с помощью индикатора ? или :name, который позже заполняется с помощью bind_param или execute, в зависимости от того, какой из них вы используете.
Попробуйте использовать join ..






В вашем коде сначала вы говорите, что собираетесь обновить 2 таблицы, но затем вы обновляете только таблицу t. Если таблицы не связаны с иностранными ключами, вы можете попробовать следующее:
$upd = "
UPDATE table t
SET t.image_blob = (SELECT i.image_blob FROM images i WHERE i.image_id='".$iid."')
WHERE t.record_id='".$rid."'";
$dbh->exec($upd);
в противном случае вы можете попробовать решение, данное на Обновление одной таблицы на основе данных из нескольких таблиц SQL Server 2005,2008, используя "FROM" и "JOIN's"
У вас
<br>после команды. Вы это пропустили?