Page 1 sur 1

[mysql5] requete préparé avec mysql_query

Posté : 31 juil. 2008, 21:07
par damaskinos
Bonjour,

J'aimerais savoir s'il est possible de faire un truc du genre tu prépares tes requêtes

$req ="UPDATE mark SET mark.idMark='1' WHERE mark.idMark=1;" ;
$req .="UPDATE mark SET mark.make='Acura' WHERE mark.idMark=1;" ;
$req .="UPDATE model SET model.idModel='1' WHERE model.idModel=1;";

et utliser
mysql_query($req,$db);
pour l'exécuter?.

J'ai pris le groupe de requete et execute directement dans phpmyadmin et ca marche mais dans mon script il bloque. J'ai mysql5 et php5.

Je sais il y a PDO qui pourrait faire ca mais je ne peux rien installer ou activer sur le serveur. J'y ai pas accès et c'est pas activé.

Code : Tout sélectionner

CREATE TABLE `model` ( `idModel` tinyint(4) NOT NULL auto_increment, `idMark` tinyint(4) NOT NULL, `model` varchar(20) collate latin1_general_ci NOT NULL, `desc` varchar(150) collate latin1_general_ci NOT NULL, `price` float NOT NULL, `year` tinyint(4) NOT NULL, `warranty` tinyint(4) NOT NULL, `pic` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`idModel`), KEY `idMark` (`idMark`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=9 ; CREATE TABLE `mark` ( `idMark` tinyint(4) NOT NULL auto_increment, `make` varchar(20) collate latin1_general_ci NOT NULL, PRIMARY KEY (`idMark`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;

Merci

[EDIT:] JE viens de lire que c'est impossible avec mysql_query. Quelqu'un pourrait confirmer avant que je me lance dans des gros changements

Posté : 05 août 2008, 00:36
par dunbar

Posté : 05 août 2008, 15:37
par Victor BRITO
À défaut de vraiment simuler les requêtes préparées de PDO, tu peux déjà procéder aux échappements nécessaires grâce à mysql_real_escape_string() pour les champs textuels.