Как вы выполняете несколько операторов SQL в одной mysql_query?

Скажем, я хотел сделать UPDATE table SET name = 'bob' и UPDATE table SET age = 55 WHERE name = 'jim' как я могу сделать это в той же mysql_query ()?

EDIT: поскольку в этом вопросе есть много мнений, я хотел бы указать, что с PHP 5.5 mysql_query и другие функции mysql_* теперь устарели и не должны использоваться.

Solutions Collecting From Web of "Как вы выполняете несколько операторов SQL в одной mysql_query?"

Я никогда не пробовал это, но я думаю, вы можете использовать mysqli :: multi_query . Одна из хороших вещей о том, что mysql_query отклоняет несколько операторов, заключается в том, что она немедленно исключает некоторые из наиболее распространенных атак SQL-инъекций, таких как добавление '; DELETE FROM ... # '; DELETE FROM ... # в инструкции. Поэтому вы можете быть осторожны с несколькими утверждениями.

Как говорится в верхней части руководства :

mysql_query () отправляет уникальный запрос (несколько запросов не поддерживаются) в текущую активную базу данных на сервере, связанную с указанным link_identifier.

Вы можете сделать «условное» обновление таким образом:

 create table test ( id int not null auto_increment primary key, name varchar(50), age tinyint ) engine = myisam; insert into test (name) values ('jim'),('john'),('paul'),('mike'); update test set age = case when name = 'jim' then 10 when name = 'paul' then 20 else 30 end 

Надеюсь, что это вам поможет.