Encodage

popup421 Messages postés 5 Statut Membre -  
yg_be Messages postés 24281 Statut Contributeur -
bonjour,

Ma requete mysql fonctionne sous phpmyadmin.
mais quand je l'execute depuis un script php elle genere une erreur de syntaxe???



-----------------------------
$sql="drop table if exists `tabletest`;
CREATE TABLE `tabletest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`champ` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8";

$res = mysqli_query($dbLink[0],$sql);
echo "<hr><pre>".mysqli_error( $dbLink[0] );
------------------------------------------

je suis sous kate...

2 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour, le message d'erreur ne contient-il aucun détail utile?
il s'agit en fait de deux requêtes SQL, séparées par un ";".
as-tu essayé d'exécuter la première puis la seconde?
il est possible que phpmyadmin accepte de recevoir plusieurs requêtes, tandis que mysqli n'en veuille qu'une à la fois.
0
popup421 Messages postés 5 Statut Membre
 
c juste,

j'ai donc testé uniquement:

$sql="
CREATE TABLE `tabletest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`champ` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8";


mais il me retourne encore une erreur de syntaxe. alors que le "copié collé" fonctionne dans pma.
Je n'avais pas ce bug sous windows (+notepad++). Cela ne m'étonnerais pas que ça vienne de l'encodage et des "`" guillemets américains, et/ou de l'utf8....de kate

d'autres propositions?
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
le message d'erreur ne contient-il toujours aucun détail utile? pourquoi ne pas le partager?
et ainsi:
$sql=" CREATE TABLE tabletest ( 
id int(11) NOT NULL AUTO_INCREMENT, 
champ varchar(10) DEFAULT NULL, 
PRIMARY KEY (id) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8"; 
0
popup421 Messages postés 5 Statut Membre > yg_be Messages postés 24281 Statut Contributeur
 
TROUVé MERCI.

C bien ça, si il y a deux requetes il ne les prend pas et genere une erreur de syntaxe.Le drop table et create table doivent être dans deux mysqli_query différentes.

L'encodage et les guillemets n'ont pas d'incidence dans ce cas la.

Merci de ton interet.

Il me semblait pourtant que dans le cas des "insert" il peut prendre plusieurs requetes à la suite séparé par des ; dans une même query, à vérifier....mais j'ai du me tromper.

xcv
0
yg_be Messages postés 24281 Statut Contributeur 1 584 > popup421 Messages postés 5 Statut Membre
 
parfait. peux-tu marquer comme résolu?
0