Problème étrange (inqualifiable)

Problème étrange (inqualifiable) - PHP - Programmation

Marsh Posté le 31-10-2008 à 10:55:37    

Bonjour.
 
Voici mon code.
 

Code :
  1. $requete = "INSERT INTO table (ID,SUIVIPAR) VALUES ('64646','sdghfds hsfdgfsd')";
  2. $base->bdd_execsql($requete);
  3. echo $good_requete = $resultat_requete;
  4. if (!$good_requete) {
  5.     die('Requête invalide : ' . mysql_error());
  6. }


 

Code :
  1. function bdd_execsql($bdd_requete)
  2.     {
  3. .
  4. .
  5. .
  6.      $this->resultat_requete = mysql_query($bdd_requete);
  7.     return $this->resultat_requete;
  8. }


 
Je ne comprends pas pourqoi mais quand mon echo $good_requete = $resultat_requete; me retourne 1 je rentre quand même dans la boucle et j'obtiens un Requete invalide : avec un mysql_error() qui ne retourne bien entendu rien car ma requête est correcte.
 
Je ne comprends rien!!!!!!
 
Merci

Reply

Marsh Posté le 31-10-2008 à 10:55:37   

Reply

Marsh Posté le 31-10-2008 à 11:04:34    

heu t'es sur du
echo $good_requete = $resultat_requete;
 
l'affectation se fait bien ?
j'aurais mis  
 
$good_requete = $resultat_requete;
echo $good_requete;

Reply

Marsh Posté le 31-10-2008 à 11:09:09    

rengzehn a écrit :

heu t'es sur du
echo $good_requete = $resultat_requete;
 
l'affectation se fait bien ?
j'aurais mis  
 
$good_requete = $resultat_requete;
echo $good_requete;


 
 
Même problème.
 
1Requête invalide :
Ca vaut 1 (qui est ecrit devant requête invalide!!!!!) et ça rentre dans la boucle.
J'avoue ne plus rien comprendre!!!!!

Reply

Marsh Posté le 31-10-2008 à 11:25:26    

ué bizarre, essaye avec True plutot que 1 ptetre.

Reply

Marsh Posté le 31-10-2008 à 11:34:26    

Faudrais pas plutot faire : echo $good_requete = $this->resultat_requete;
 
Enfin j'dit ça, j'dit rien, car on sait pas où est quoi.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 31-10-2008 à 11:53:13    

MEI a écrit :

Faudrais pas plutot faire : echo $good_requete = $this->resultat_requete;
 
Enfin j'dit ça, j'dit rien, car on sait pas où est quoi.


 
Je peux te mettre le code entier!!!
 
La classe

Code :
  1. class Bdd
  2. {
  3. var $baseouverte;
  4. var $baseOK;
  5. var $typebase;
  6. var $link;
  7. var $resultat_requete;
  8. var $lignelue;
  9. var $mysqlitype = array( 1=>"TINYINT", 3=>"INTEGER", 4=>"FLOAT", 7=>"TIMESTAMP", 10 =>"DATE",  11=>"TIME", 12 =>"DATETIME", 252=>"BLOB", 253=>"LONGBLOB", 254=>"CHAR" );
  10. var $auto_table;
  11. var $auto_clef;
  12. var $auto_header;
  13. var $auto_sauverequete;
  14. var $auto_sec_field = '';
  15. var $auto_sec_value = '';
  16. var $xml_nbre = 0;
  17. var $xml_lastname = '';
  18. function bdd_execsql($bdd_requete)
  19.     {
  20.  if ( empty($bdd_requete) ) {
  21.   print "\n\n<!--\n\n La fonction bdd_execsql() attend une chaine requete SQL valide comme paramètre \n\n--!>\n";
  22.   return false;
  23.  }
  24.  if (!$this->baseOK) return;
  25.         switch ($this->typebase) {
  26.                case "ODBC":
  27.            $this->resultat_requete = odbc_exec($this->link,$bdd_requete);
  28.      break;
  29.                case "MYSQL":
  30.            $db = mysql_select_db($this->baseouverte);
  31.      if (!$db) {
  32.    die ('Impossible de sélectionner la base de données : ' . mysql_error());
  33. }
  34.            $this->resultat_requete = mysql_query($bdd_requete);
  35.      return $this->resultat_requete;
  36.      break;
  37.                case "MYSQLI":
  38.            $this->resultat_requete = $this->link -> query($bdd_requete);
  39.      break;
  40.         }
  41.  if ($this->resultat_requete === false) {
  42.   print "\n\n\n<!--\n\n\tbdd_execsql() retourne une erreur pour la requete : \n\n\t". $bdd_requete ."\n\tsur la base = " . $this->baseouverte . "\n\n--!>\n\n";
  43.  } else {
  44.   $this->lignelue = 0;
  45.  }
  46.     } // Fin de bdd_execsql()


 
La tu as tout le code :)


Message édité par masseur le 31-10-2008 à 11:53:23
Reply

Marsh Posté le 31-10-2008 à 12:57:54    

Heu faudrait p'tet juste faire :
 
$resultat_requete = $base->bdd_execsql($requete);
 
;)


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 31-10-2008 à 13:03:32    

C'est normal, $resultat_requete n'est pas setté.
De plus, faire ton truc avec $good_requete ne sert à rien parce qu'il est déja fait dans bdd_execsql().
 
Donc tu fais juste un
$base = new Bdd();
$requete = "INSERT INTO table (ID,SUIVIPAR) VALUES ('64646','sdghfds hsfdgfsd')";
$base->bdd_execsql($requete);
 
et si tu as une erreur, c'est la fonction qui va te faire le print.
 
 
arf, tué par le return en plein milieu  [:ddr555]


Message édité par Profil supprimé le 31-10-2008 à 14:15:16
Reply

Marsh Posté le 31-10-2008 à 13:40:05    

Si je fais cela par exemple  
$base = new Bdd();
$requete = "INSERT INTO table (ID,SUIVIIIIPAR) VALUES ('64646','sdghfds hsfdgfsd')";
$base->bdd_execsql($requete);  
 
SUIVIIIPAR n'existant pas dans la bdd
 
Je genère donc une requête incorrect, rien ne m'est renvoyé n'y affiche!


Message édité par masseur le 31-10-2008 à 13:40:25
Reply

Marsh Posté le 31-10-2008 à 13:41:51    

MEI a écrit :

Heu faudrait p'tet juste faire :
 
$resultat_requete = $base->bdd_execsql($requete);
 
;)


 
En fait c'est ca :)
 
Merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed