2015-02-05 4 views
-4

У меня возникает проблема с моим UPDATE Query в Mysql-UPDATE запрос в Mysql Не работает

mysql_query(INSERT INTO `cost` 
      SET `cat_id` = '18', `feature_id` = '77', `type_id` = '5', 
       `cost_from` = '600', `cost_to` = '800' 
      WHERE `type_id` = 5 && `cat_id` = 18 && `feature_id` = 77"); 

type_id = 5 не в моей текущей таблице, где я хочу, чтобы установить мои новые значения.
Результат Неудачный.

Я попробовал также запрос UPDATE для того же

mysql_query(Update `cost` 
      SET `cat_id` = '18', `feature_id` = '77', `type_id` = '5', 
       `cost_from` = '600', `cost_to` = '800' 
      WHERE `type_id` = 5 && `cat_id` = 18 && `feature_id` = 77"); 

Что я должен сделать, чтобы вставить и обновить значения в то же время?

+1

Как вы хотите вставить и обновление в то же время? Это не имеет никакого смысла! – Rizier123

+0

Если у меня нет файла, тогда он должен вставить, как я знаю, и если он обновит поле. – MuteX

+0

@ Rizier123, В динамическом программировании мне нужно обновить поле, которое не исправлено, так что если появится новая подача, то что обновить другое поле и вставить новую поданную? Вот почему мне нужен оба запроса одновременно. – MuteX

ответ

1

Примечание:

  • Вы не можете использовать WHERE и SET на запросе INSERT.
  • Убедитесь, что таблица с именем cost вместе с колоннами cat_id, feature_id, cost_from, cost_to, type_id.
  • Вы пытаетесь обновить столбики таблицы cost теми, которые вы ищете. Кажется неправдой.
  • Ваш первый и второй приведенные примеры кода имеют тот же формат, вы только что изменили первое слово, INSERT и UPDATE. Не работает так.

Вы можете, я думаю, рекомендацию всех людей, которая увидит ваш код, создавать более качественные запросы, используя mysql_* prepared statements.

Простой пример запроса INSERT будет выглядеть следующим образом:

/* PREPARE YOUR QUERY */ 
$stmt = $con->prepare("INSERT INTO cost (cat_id, feature_id, type_id, cost_from, cost_to) VALUES (?,?,?,?,?)"); 

/* BIND PARAMETER TO THE QUERY. REPLACE NECESSARY VALUE OR VARIABLE */ 
$stmt->bind_param('iiiss', $catid,$featureid,$typeid,$costfrom,$costto); 

$stmt->execute(); /* EXECUTE QUERY */ 

Простой пример UPDATE запроса:

/* PREPARE YOUR QUERY */ 
$stmt = $con->prepare("UPDATE cost SET cat_id=?, feature_id=?, type_id=?, cost_from=?, cost_to=? WHERE id=?"); 

/* BIND PARAMETER TO THE QUERY. REPLACE NECESSARY VALUE OR VARIABLE */ 
$stmt->bind_param('iiissi', $catid,$featureid,$typeid,$costfrom,$costto,$id); 

$stmt->execute(); /* EXECUTE QUERY */ 
0

Прежде всего, вы не можете использовать «набор» с ' insert into ', и если вы хотите одновременно вставлять и обновлять запросы, то лучшим вариантом является использование транзакции. (Вы должны приложить вставки и обновления запросов в транзакции), вы не можете заключить как на одном SQL заявление ..

Это сообщение может помочь вам SQL Update,Delete And Insert In Same Time

+0

Является ли эта работа в запросе mysql? – MuteX

+0

есть транзакции в mysql – Aakash

Смежные вопросы