2 votes

exécuter une requête sql en php en utilisant la concaténation

Duplicata possible :
Mysql ne peut pas effectuer plus d'une requête à la fois

        $query = "TRUNCATE TABLE nw_world;";
        $query = $query . " INSERT INTO `nw_world`";
        $query = $query . " SELECT * FROM `x_world` WHERE x <0 AND y >=0";
        $query = $query . " AND tid !=5 AND aid NOT IN ( 29, 908, 935, 941, 950 )";
        $query = $query . " AND population <=50";

        echo "$query";
        mysql_query($query,$con) or die("error ".mysql_error());

Il en résulte une erreur

error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO `nw_world` SELECT * FROM `x_world` WHERE x <0 AND y >=0 AND tid !=5 ' at line 1

Mais lorsque j'exécute la même requête dans mysql, tout fonctionne bien. C'est pourquoi j'ai l'impression d'avoir fait une erreur dans le codage php. Merci de m'aider.

3voto

a1ex07 Points 23965

mysql_query ne vous permet pas d'exécuter plus d'une requête. Utilisez mysqli::multi_query ou exécutez chaque commande séparément.

3voto

Tom Points 1388

Par défaut, PHP n'exécute qu'une seule requête par appel mysql_query (mesure de sécurité).

Si vous souhaitez en exécuter plus d'un à la fois, consultez la rubrique http://se2.php.net/manual/en/mysqli.multi-query.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X