4

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?

ax.
  • 58,560
  • 8
  • 81
  • 72
good_evening
  • 21,085
  • 65
  • 193
  • 298

4 Answers4

12

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
  • 95,432
  • 20
  • 163
  • 226
5

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

Ignacio Vazquez-Abrams
  • 776,304
  • 153
  • 1,341
  • 1,358
0

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
  • 3,712
  • 20
  • 34
-3

or perhaps you could try this...

$query1 ="UPDATE name SET money = money + 1;";
$query2 ="UPDATE surname SET money = money + 1";

mysql_query($query1,$query2) or die(mysql_error());
Archangel08
  • 91
  • 10