Bonjour,
heuh, je vais essayer d'expliquer mon problème :-)
Soit une classe "User" qui doit se charger decréation d'un objet user.
Cette classe possede les "variables membres"
pas exemple:
var $nom;
var $prenom;
un certain moment je veux faire une insertion dans une BD mySQL en
faisant quelque chose du genre:
$requete = "insert into TABLE values ($this -> nom, $this -> prenom)"
$db = new DB;
$db -> insert($requete);
/*DB est une classe qui crée un objet DB qui fait la connexion avec
la BD et autre choses, entre autre insertions dans une BD */
Evidemment le code a haut ne marche pas car les caracteres d'echapement
ne sont pas corrects.
J'ai besoin un truc du genre
$requete = "insert into table values(" .$this -> nom. "," .$this ->
prenom.")");
Mais malheureusement ca non plus ca ne marche pas. J'ai le message
suivant qui s'affiche:
Parse error: parse error, unexpected T_OBJECT_OPERATOR in
/Library/Apache2/htdocs/Users.php on line 80
Donc mon probleme est la concatenation de chaines.
Quelqun a une solution a mon probleme ou un site web comme pointeur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marc Quinton
wrote:
Bonjour, heuh, je vais essayer d'expliquer mon problème :-) Soit une classe "User" qui doit se charger decréation d'un objet user. ...
un certain moment je veux faire une insertion dans une BD mySQL en faisant quelque chose du genre: $requete = "insert into TABLE values ($this -> nom, $this -> prenom)"
tout cet ensemble de classes se presente plutot bien. cela etant dit, tu dois gerer une requete qui ressemble a cela :
insert into TABLE values ("nom", "prenom")
* attention aux quotes, ou doubles suivant la base de données. * tu peux utiliser sprintf ; ex : sprintf("insert into ... (..., '%s')", $this->nom);
azebic@gmail.com wrote:
Bonjour,
heuh, je vais essayer d'expliquer mon problème :-)
Soit une classe "User" qui doit se charger decréation d'un objet user.
...
un certain moment je veux faire une insertion dans une BD mySQL en
faisant quelque chose du genre:
$requete = "insert into TABLE values ($this -> nom, $this -> prenom)"
tout cet ensemble de classes se presente plutot bien.
cela etant dit, tu dois gerer une requete qui ressemble a cela :
insert into TABLE values ("nom", "prenom")
* attention aux quotes, ou doubles suivant la base de données.
* tu peux utiliser sprintf ; ex : sprintf("insert into ... (..., '%s')", $this->nom);
Bonjour, heuh, je vais essayer d'expliquer mon problème :-) Soit une classe "User" qui doit se charger decréation d'un objet user. ...
un certain moment je veux faire une insertion dans une BD mySQL en faisant quelque chose du genre: $requete = "insert into TABLE values ($this -> nom, $this -> prenom)"
tout cet ensemble de classes se presente plutot bien. cela etant dit, tu dois gerer une requete qui ressemble a cela :
insert into TABLE values ("nom", "prenom")
* attention aux quotes, ou doubles suivant la base de données. * tu peux utiliser sprintf ; ex : sprintf("insert into ... (..., '%s')", $this->nom);
dmetzler
alors j'ai essayé avec ta syntaxe, et pour moi ça renvoit pas le même message d'erreur : il y a une parenthèse en trop à la fin de ta ligne.
Sinon je viens d'apprendre qu'on peut mettre des espaces autour de l'opérateur -> (en fait j'avais jamais essayé et je pensais que le problème venait de là).
Voilà le code que j'ai fait pour tester :
<?php
class test { var $nom; var $prenom;
function test($nom,$prenom) { $this -> nom = $nom; $this -> prenom = $prenom; }
function getRequete() { $requete = "insert into table values(" .$this -> nom. "," .$this -> prenom.")"; return $requete; }
}
$t = new test("toto","titi"); print $t->getRequete()."n";
?>
alors j'ai essayé avec ta syntaxe, et pour moi ça renvoit pas le
même message d'erreur : il y a une parenthèse en trop à la fin de ta
ligne.
Sinon je viens d'apprendre qu'on peut mettre des espaces autour de
l'opérateur -> (en fait j'avais jamais essayé et je pensais que le
problème venait de là).
Voilà le code que j'ai fait pour tester :
<?php
class test {
var $nom;
var $prenom;
function test($nom,$prenom) {
$this -> nom = $nom;
$this -> prenom = $prenom;
}
function getRequete() {
$requete = "insert into table values(" .$this -> nom. ","
.$this -> prenom.")";
return $requete;
}
}
$t = new test("toto","titi");
print $t->getRequete()."n";
alors j'ai essayé avec ta syntaxe, et pour moi ça renvoit pas le même message d'erreur : il y a une parenthèse en trop à la fin de ta ligne.
Sinon je viens d'apprendre qu'on peut mettre des espaces autour de l'opérateur -> (en fait j'avais jamais essayé et je pensais que le problème venait de là).
Voilà le code que j'ai fait pour tester :
<?php
class test { var $nom; var $prenom;
function test($nom,$prenom) { $this -> nom = $nom; $this -> prenom = $prenom; }
function getRequete() { $requete = "insert into table values(" .$this -> nom. "," .$this -> prenom.")"; return $requete; }
}
$t = new test("toto","titi"); print $t->getRequete()."n";
?>
ftc
<?php
class test { var $nom; var $prenom;
function test($nom,$prenom) { $this -> nom = $nom; $this -> prenom = $prenom; }
function getRequete() { $requete = "insert into table values(" .$this -> nom. "," .$this -> prenom.")"; return $requete; }
}
Vire les espaces entre $this et les attributs: $this->nom etpas $this -> nom
<?php
class test {
var $nom;
var $prenom;
function test($nom,$prenom) {
$this -> nom = $nom;
$this -> prenom = $prenom;
}
function getRequete() {
$requete = "insert into table values(" .$this -> nom. ","
.$this -> prenom.")";
return $requete;
}
}
Vire les espaces entre $this et les attributs: $this->nom etpas $this -> nom
function test($nom,$prenom) { $this -> nom = $nom; $this -> prenom = $prenom; }
function getRequete() { $requete = "insert into table values(" .$this -> nom. "," .$this -> prenom.")"; return $requete; }
}
Vire les espaces entre $this et les attributs: $this->nom etpas $this -> nom
dmetzler
Oui je sais, je n'en met pas d'habitude. A priori, -> est considéré comme un opérateur par l'interpréteur et donc rien n'empêche de mettre des espaces autour. D'ailleurs, ça marche (tm). C'est la même différence entre 2+2 et 2 + 2
Tu remarqueras quand même que dans mon message je dis bien que je ne suis pas habitué à mettre des espaces. Dans l'exemple, j'en ai mis pour faire comme azebic.
Oui je sais, je n'en met pas d'habitude. A priori, -> est considéré
comme un opérateur par l'interpréteur et donc rien n'empêche de
mettre des espaces autour. D'ailleurs, ça marche (tm). C'est la même
différence entre 2+2 et 2 + 2
Tu remarqueras quand même que dans mon message je dis bien que je ne
suis pas habitué à mettre des espaces. Dans l'exemple, j'en ai mis
pour faire comme azebic.
Oui je sais, je n'en met pas d'habitude. A priori, -> est considéré comme un opérateur par l'interpréteur et donc rien n'empêche de mettre des espaces autour. D'ailleurs, ça marche (tm). C'est la même différence entre 2+2 et 2 + 2
Tu remarqueras quand même que dans mon message je dis bien que je ne suis pas habitué à mettre des espaces. Dans l'exemple, j'en ai mis pour faire comme azebic.
ftc
Oui je sais, je n'en met pas d'habitude. A priori, -> est considéré comme un opérateur par l'interpréteur et donc rien n'empêche de mettre des espaces autour. D'ailleurs, ça marche (tm). C'est la même différence entre 2+2 et 2 + 2
Tu remarqueras quand même que dans mon message je dis bien que je ne suis pas habitué à mettre des espaces. Dans l'exemple, j'en ai mis pour faire comme azebic.
L'erreur est bien: unexpected T_OBJECT_OPERATOR in /Library/Apache2/htdocs/Users.php on line 80 qui correspond bien au sigle -> qui n'est pas attendu à l'endroit ou il se trouve. Donc ligne 80, tu fais appel à -> à un endroit ou il n'a rien a faire.
Un petit error_reporting( E_ALL ) en début de script t'apprendra peut être un peu plus du genre variable non définie ou contante non existante ...
Oui je sais, je n'en met pas d'habitude. A priori, -> est considéré
comme un opérateur par l'interpréteur et donc rien n'empêche de
mettre des espaces autour. D'ailleurs, ça marche (tm). C'est la même
différence entre 2+2 et 2 + 2
Tu remarqueras quand même que dans mon message je dis bien que je ne
suis pas habitué à mettre des espaces. Dans l'exemple, j'en ai mis
pour faire comme azebic.
L'erreur est bien: unexpected T_OBJECT_OPERATOR in
/Library/Apache2/htdocs/Users.php on line 80 qui correspond bien au
sigle -> qui n'est pas attendu à l'endroit ou il se trouve. Donc ligne
80, tu fais appel à -> à un endroit ou il n'a rien a faire.
Un petit error_reporting( E_ALL ) en début de script t'apprendra peut
être un peu plus du genre variable non définie ou contante non existante ...
Oui je sais, je n'en met pas d'habitude. A priori, -> est considéré comme un opérateur par l'interpréteur et donc rien n'empêche de mettre des espaces autour. D'ailleurs, ça marche (tm). C'est la même différence entre 2+2 et 2 + 2
Tu remarqueras quand même que dans mon message je dis bien que je ne suis pas habitué à mettre des espaces. Dans l'exemple, j'en ai mis pour faire comme azebic.
L'erreur est bien: unexpected T_OBJECT_OPERATOR in /Library/Apache2/htdocs/Users.php on line 80 qui correspond bien au sigle -> qui n'est pas attendu à l'endroit ou il se trouve. Donc ligne 80, tu fais appel à -> à un endroit ou il n'a rien a faire.
Un petit error_reporting( E_ALL ) en début de script t'apprendra peut être un peu plus du genre variable non définie ou contante non existante ...
dmetzler
J'ai bien remarqué le message d'erreur et c'est pour ça qu'au début, je pensais que ça venait des espaces.
J'ai testé le programme ci-dessus avec ma version de PHP (5.0.3) et avec les espaces : ça fonctionne sans problème. Lorsque je poste du code simple, j'ai tendance à toujours le tester (ou alors je signale que j'ai pas testé). Quand j'ai copié/collé le code proposé, j'ai eu l'erreur "Parse error: syntax error, unexpected ')' ". Peut être que le unexpected T_OBJECT_OPERATOR vient d'autre part (ou qu'une autre version de PHP ne supporte pas cette syntaxe)
De plus comme je l'ai expliqué le symbole -> est un opérateur et il n'est nulle part spécifié dans la documentation que les opérateurs ne doivent pas avoir d'espace avant ou après. En revanche, il est vrai qu'il est de coutume de ne pas en mettre pour cet opérateur ci.
J'ai bien remarqué le message d'erreur et c'est pour ça qu'au début,
je pensais que ça venait des espaces.
J'ai testé le programme ci-dessus avec ma version de PHP (5.0.3) et
avec les espaces : ça fonctionne sans problème. Lorsque je poste du
code simple, j'ai tendance à toujours le tester (ou alors je signale
que j'ai pas testé). Quand j'ai copié/collé le code proposé, j'ai
eu l'erreur "Parse error: syntax error, unexpected ')' ". Peut être
que le unexpected T_OBJECT_OPERATOR vient d'autre part (ou qu'une autre
version de PHP ne supporte pas cette syntaxe)
De plus comme je l'ai expliqué le symbole -> est un opérateur et il
n'est nulle part spécifié dans la documentation que les opérateurs
ne doivent pas avoir d'espace avant ou après. En revanche, il est vrai
qu'il est de coutume de ne pas en mettre pour cet opérateur ci.
J'ai bien remarqué le message d'erreur et c'est pour ça qu'au début, je pensais que ça venait des espaces.
J'ai testé le programme ci-dessus avec ma version de PHP (5.0.3) et avec les espaces : ça fonctionne sans problème. Lorsque je poste du code simple, j'ai tendance à toujours le tester (ou alors je signale que j'ai pas testé). Quand j'ai copié/collé le code proposé, j'ai eu l'erreur "Parse error: syntax error, unexpected ')' ". Peut être que le unexpected T_OBJECT_OPERATOR vient d'autre part (ou qu'une autre version de PHP ne supporte pas cette syntaxe)
De plus comme je l'ai expliqué le symbole -> est un opérateur et il n'est nulle part spécifié dans la documentation que les opérateurs ne doivent pas avoir d'espace avant ou après. En revanche, il est vrai qu'il est de coutume de ne pas en mettre pour cet opérateur ci.