views:

198

answers:

3

I'm trying to do something like this:

mysql_query("
  UPDATE name SET money = money + 1;
  UPDATE surname SET money = money + 1;
"); 

but it doesn't work.

It's just example, but my question is: How can I put two or even more queries in one mysql_query?

+3  A: 

You should use transactions for queries that need to happen in an atomic fashion, which I suspect these may.

Ignacio Vazquez-Abrams
+7  A: 

http://docs.php.net/mysql_query says:

mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier .

But you might be interested in mysqli::multi_query:

Executes one or multiple queries which are concatenated by a semicolon.
VolkerK
A: 

This can be done using the MySQLi interface, mysqli_multi_query() in particular. http://ca3.php.net/manual/en/mysqli.multi-query.php

It should be noted that you need to be extra careful with your escaping when using this function as any SQL injection attack has a much broader possible affect.

preinheimer
`mysql_multi_query()` should be `mysql*i*_multi_query()`, shouldn't it?
ax
yes, thanks. I got the link right at least :)
preinheimer