Précédent   Forum des professionnels en informatique > Applications > Projets > Projets hébergés > Archives > PhpMyObject
PhpMyObject Mapper de bases de données écrit en PHP qui transforme les résultats de requêtes SQL en objets (ORM). Le site : http://pmo.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/09/2007, 18h22   #1
Invité régulier
 
Inscription : mai 2004
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 8
Points : 5
Points : 5
Par défaut Pb pour faire des insert "Invalid query"

Bonjour a tous!

Pour commencer voici ma config :
PHP Version 5.2.1
server MySQL - 5.0.26
pmo 0.08
et ds mon phpinfo.php je trouve entre autres:
pdo support enabled
PDO drivers sqlite2,sqlite

et voici mon script
test.php

dans le fichier connexion.php de pmo ontrouve:

require ('monchemin/pmo/core/PMO_MyController.php');

$driverz = 'mysql';

/* $pdodriverz comment if you don't use pdo */
$pdodriverz = 'mysql';

$hostz = 'localhost';
$userz = '****';
$passz = '****';
$basez = '****';

$langue = PMO_MyObject::factory("langue");
$langue->langue = "italien";
$langue->commit();

Nota :
j'ai modifié le PMO_sgbd_mysql.php
pour qu'il me remonte la requete effectué

et voici la structure de la table langue:

CREATE TABLE `langue` (
`id_langue` int(10) unsigned NOT NULL auto_increment,
`langue` varchar(50) default NULL,
PRIMARY KEY (`id_langue`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `langue` (`id_langue`, `langue`) VALUES (1, 'Français');

(plus simple tu meurs! :-) )

A l'appel de mon scrip test.php j'obtiens en affichage retour:
"Invalid query: 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 '' at line 1
UPDATE langue SET langue="italien" WHERE id_langue=; "

dejà je ne comprends pas pkoi il cherche a faire un update puisque je lui demande de faire un insert..?
j'ai bien essayé en precisant l'id genre en rajoutant:
$langue->id_langue = 1;

mais la c'est pire meme avec:
ini_set('display_errors', 'on');
il ne m'affiche rien en retour...!!!

chose etrange
je reéssayais ce script avec un autre table
ma table test que voici:

CREATE TABLE `test` (
`nom` varchar(50) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

et avec mon script de test legerement modifié que voici:

$test = PMO_MyObject::factory("test");
$test->nom = "un texte";
$test->commit();

et là je vous le donne en mille... ca marche!

C'est d'autant plus etrange que quand je lui demande de m'afficher le contenu de mes "map" y'a pas de problemes...

Donc une question bète me brule les levre...
pmo gere t-il bien l'insert dans dans une table possedant une clef primaire?
gere t'il egalement les clefs étrangères?


Donc si kelk'un a deja rencontré ce probleme merci d'avance de m'eclairer!
shopoto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 21h32   #2
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
lut,

Il faut modifier la methode commit() de PMO_MyTable pour vérifier que l'attribut n'est pas empty à la place de isset.

La version 0.09 corrige ce problème et permet d'utiliser plusieurs clefs primaires et gèra l'autoincrement.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h21.


 
 
 
 
Partenaires

Hébergement Web