I am trying to run multiple queries on some mysql dbs from a php file. However it is not working. Can anyone point out where I am going wrong?
Here is the contents of the php file:
<?
require_once('/home开发者_JS百科/xxxxxx/public_html/xxxxxx/dbconnect.php');
$query = "
TRUNCATE TABLE db2.table1;
INSERT INTO db2.table1
SELECT
column1, column2, column3, column4
FROM db1.table1;
TRUNCATE TABLE db2.table2;
INSERT INTO db2.table2
SELECT
column1, column2, column3, column4
FROM db1.table2;
ANALYZE TABLE db2.table2;
";
$result = @mysql_query($query);
?>
Thanks in advance for any help.
The most important thing to do in such a case is debugging:
- Remove the
@
prefix to see errors - Add a
echo mysql_error()
if mysql_query() returnsfalse
to see mySQL's error messages
in your specific case, mysql_query()
is not able to execute more than one statement. The easiest solution is to use two separate commands.
You are making only one query. Read docs for mysql_query
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.
You should split each query in it's own string and send it one by one to MySQL.
$query1 = "TRUNCATE TABLE db2.table1;";
$query2 = "INSERT INTO db2.table1
SELECT
column1, column2, column3, column4
FROM db1.table1;";
$query3 = "TRUNCATE TABLE db2.table2;";
$query4 = "INSERT INTO db2.table2
SELECT
column1, column2, column3, column4
FROM db1.table2;";
$query5= "ANALYZE TABLE db2.table2;";
$result1 = @mysql_query($query1);
$result2 = @mysql_query($query2);
$result3 = @mysql_query($query3);
$result4 = @mysql_query($query4);
$result5 = @mysql_query($query5);
Or use some other interface function that supports multiple queries. Personally I don't know if there is such a thing.
精彩评论