Очевидно, в этом запросе есть ошибка синтаксиса SQL при отправке из PHP, но он отлично работает на PHPMyAdmin - PullRequest
1 голос
/ 10 января 2012

Это все в названии.

У меня есть этот SQL-запрос, уродливо, я знаю, но он должен хотя бы работать ... Он работает, когда я использую его в PHPMyAdmin, но при отправке из PHP я получаю синтаксическую ошибку от MySQL. (

INSERT INTO `shortname_revisions` (old_shortname , new_shortname) VALUES ('$old', '$new');

UPDATE `soft_data` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `shot_data` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `virus_scanning` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `lang_translations` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `ratings` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `file_data` SET shortname = REPLACE(shortname ,'$old', '$new');

Переменные $new и $old при вставке в PHPMyAdmin для проверки будут содержать любую строку. Используйте $old = "media-player"; $new = "video-player"; в качестве примера.

Кроме того, я не уверен в правильном использовании обратных тиков и где они должны быть и когда, возможно, это является частью проблемы.

Для всех, кто спрашивает об ошибке, извините, я не опубликовал ее. И я уверен, что не собираюсь идти и воссоздать ошибку, чтобы вставить ее здесь. Это была довольно общая ошибка «У вас есть синтаксическая ошибка примерно в этой квадратной четверти мили кода где-то».

Ответы [ 2 ]

5 голосов
/ 10 января 2012

1) Каждый оператор должен быть отправлен отдельным вызовом mysql_query ().

2) Обратные пометки в порядке, но не нужны, поскольку в этих именах таблиц нет встроенных пробелов

3) Я не знаю вашу структуру данных, но UPDATE без предложения "where" можно считать немного необычным (если только это не намеренно таблицы из одной строки)

2 голосов
/ 10 января 2012

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

Если код работает в PHPmyadmin, то это может быть проблема с $new и $old, попробуйте протестировать его изменение $new и $old для установки значений, например. $new="newtest" и $old="oldtest", посмотрите, работает ли это, если вы знаете ошибку с вашими переменными, опубликуйте их, если это так.

Кроме того, вы можете попробовать одно обновление, возможно, из-за того, что вы пытаетесь обновить все вместе в одном запросе, вы получаете ошибку.

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