OVH Community, votre nouvel espace communautaire.

Problème SQL


Michel74
05/08/2008, 07h20
Citation Envoyé par AdserOne
Salut j'oubliais de dire que j'ai une connexion ADODB
Je ne sais pas ce que c'est.

AdserOne
05/08/2008, 06h48
Salut j'oubliais de dire que j'ai une connexion ADODB
je ne sais si il y aurait une incidence......

AdserOne
04/08/2008, 20h47
Salut,

Je viens de supprimer toute la base de données et j'ai toujours ce message d'erreur, alors là je ne comprends plus rien .....

Michel74
04/08/2008, 19h34
Une seule solution :
Relance ton script en supprimant 2 objets de ta commande CREATE.
Tu finiras bien par trouver le fauteur de troubles.

AdserOne
04/08/2008, 19h13
Michel74 :

j'ai remplacé la partie que tu m'as dit, j'ai toujours ce ...... de message d'erreur.

Michel74
04/08/2008, 18h40
Citation Envoyé par AdserOne
Donc tout va bien au niveau des connexions
Oui, c'est déjà cela.

Pourrais-tu remplacer :
`resume` longtext NOT NULL,
Par :
`resume` longtext NOT NULL default '',

AdserOne
04/08/2008, 17h30
S4RuM4N Merci de m'avoir répondu

Les symboles suivants (issus de la table ci-dessus) sont interdits par ANSI SQL mais permis par MySQL en tant que noms de colonnes ou de tables. Cela est dû au fait que ces noms sont très courants, et de nombreux programmeur les ont déjà utilisés.

ACTION

BIT

DATE

ENUM

NO

TEXT

TIME

TIMESTAMP
Dans le doute j'ai changé le nom de colonne "date" par "etad" et j'ai toujours ce message d'erreur

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 '-1' at line 1


Au niveau des requêtes aucune ne fonctionne :

même pas une simple requête: SELECT * FROM tvrip ORDER BY id_tvrip DESC

S4RuM4N
04/08/2008, 17h03
Peut-on avoir la requete sql qui est executée et qui renvoie l'erreur ?

Du coté des noms reservés, je ne vois que "date" qui puisse poser probleme s'il n'est pas correctement echappé.

AdserOne
04/08/2008, 16h09
gollummus :

Pas bête du tout comme suggestion

Mais j'ai bien changé mon login et mot de passe de connexion ainsi que le nom de serveur.
Merci beaucoup.

Michel74 :

Merci pour ton script

Voici le résultat:

mysql_connect =

mysql_select_db =
$sql_query=DROP TABLE IF EXISTS `Tab_test_DB` - $result_query=1
Supression de la table Tab_test_DB =

$sql_query=CREATE TABLE `Tab_test_DB` ( `Id` int(11) NOT NULL auto_increment, `NOM` varchar(32) NOT NULL default '', `PRENOM` varchar(32) NOT NULL default '', PRIMARY KEY (`Id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 - $result_query=1
Création de la table Tab_test_DB

$sql_query=INSERT INTO `Tab_test_DB` values ('','DURANDAL','Michel') - $result_query=1
Ajout d'un enregistrement

$sql_query=SELECT Id, NOM, PRENOM FROM `Tab_test_DB` WHERE NOM='DURANDAL' - $result_query=Resource id #2
SELECT dans la table Tab_test_DB

Nombre d'enregistrements trouvés = 1
Donc tout va bien au niveau des connexions.

Une autre solution?

Michel74
04/08/2008, 08h27
Bonjour AdserOne,

Puis-je te suggérer de faire un tout petit script en PHP test_SQL.php, dans lequel tu vas :
- Ouvrir une connexion à ta base,
- Faire une requête dans une table,
- Fermer ta connexion.

Ce script te permettra, indépendamment de tous tes autres scripts, de voir si ta base de données est accessible ou non.

test_SQL.php

Code PHP:

   error_reporting
(E_ALL);   // Activer le rapport d'erreurs PHP


// ******  Exemples de configuration selon les hébergements mutualisés ******

//   demo1g
//   ------
//      $DBhost  = "mysql.demo1g.ovh.org";
//      $DBowner = "";  // Ton login ftp
//      $DBName  = $DBowner;

//   60gp
//   ------
//      $DBhost  = "mysql5-6";
//      $DBowner = "";  // Ton login ftp
//      $DBName  = $DBowner;

//   Start 1g, 5g, 10g
//   -----------------
//      $DBhost  = "mysql5-6";
//      $DBowner = "";  // Ton login ftp
//      $DBName  = $DBowner;

//   90plan
//   ------
//      $DBhost  = "mysql5-6";
//      $DBowner = "";  // Ton login ftp suivi de quelques caractères (voir dans Manager v3)
//      $DBName  = $DBowner;




// ******  Fin des exemples de configuration


// ******  Configuration - Debut ******
   
$DBhost  "mysql5-6";   // Par exemple
   
$DBowner "";  // ton login ftp
   
$DBpw    "";  // ton password SQL
   
$DBName  $DBowner;
// ******  Configuration - Fin ******
    
      
$fh_db mysql_connect($DBhost$DBowner$DBpw);
      
$Erreur mysql_error();
      echo 
" mysql_connect = $Erreur " 
 
\n"
;
      if (
strlen($Erreur) > 0)   exit;

      
$sel mysql_select_db($DBName$fh_db);
      
$Erreur mysql_error();
      echo 
" mysql_select_db = $Erreur " 
 \n";

      
//  Supression de la table Tab_test_DB

      
$sql_query="DROP TABLE IF EXISTS `Tab_test_DB` ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"\$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      echo 
" Supression de la table Tab_test_DB  = $Erreur " 
 
\n";
      if (
strlen($Erreur) > 0)   exit;

      
//  Création de la table Tab_test_DB

      
$sql_query="CREATE TABLE `Tab_test_DB` (  `Id` int(11) NOT NULL auto_increment,  `NOM` varchar(32) NOT NULL default '',  `PRENOM` varchar(32) NOT NULL default '', PRIMARY KEY  (`Id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"\$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      echo 
" Création de la table Tab_test_DB  $Erreur " 
 
\n";
      if (
strlen($Erreur) > 0)   exit;

      
//  Ajout d'un enregistrement

      
$sql_query="INSERT INTO `Tab_test_DB`  values ('','DURANDAL','Michel')  ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"\$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      echo 
" Ajout d'un enregistrement  $Erreur " 
 
\n";
      if (
strlen($Erreur) > 0)   exit;

      
//  SELECT dans la table Tab_test_DB

      
$sql_query="SELECT Id, NOM, PRENOM FROM `Tab_test_DB` WHERE NOM='DURANDAL' ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"\$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      echo 
" SELECT dans la table Tab_test_DB  $Erreur " 
 
\n";
      if (
strlen($Erreur) > 0)   exit;

      
$result_count_row_get mysql_num_rows($result_query);  
      
$Erreur mysql_error();
      echo 
" Nombre d'enregistrements trouvés = $result_count_row_get 
 \n";
      if (
strlen($Erreur) > 0)   exit;


      
// Fermeture de la connexion    
      
mysql_close($fh_db);                                 

?>

gollummus
04/08/2008, 07h20
je vais peu etre dire une betise comme je suis novice, as-tu changer les parametres de ton fichier config qui va vers ta base de donnee vu que tu etais en local tu utilisais localhost comme serveur et tes acces propre a ton easyphp mais c'est pas les meme sur un mutualiser donc regarde de ce cote la.

AdserOne
03/08/2008, 10h05
Bonjour

Je viens de créer un petit site avec une base de données, en local avec "easyphp" tout fonctionne bien.

j'ai importé la base sur phpmyadmin :

CREATE TABLE `tvrip` (
`id_tvrip` smallint(10) NOT NULL auto_increment,
`titre` varchar(100) NOT NULL default '',
`images` varchar(255) NOT NULL default '',
`chaine` varchar(20) NOT NULL default '',
`qualite` varchar(20) NOT NULL default '',
`duree` varchar(20) NOT NULL default '',
`date` varchar(10) NOT NULL default '',
`taille` varchar(10) NOT NULL default '',
`rippeur` varchar(20) NOT NULL default '',
`codec_video` varchar(20) NOT NULL default '',
`birate_video` varchar(20) NOT NULL default '',
`resolution_video` varchar(7) NOT NULL default '',
`codec_audio` varchar(20) NOT NULL default '',
`birate_audio` varchar(6) NOT NULL default '',
`resume` longtext NOT NULL,
`lien` varchar(255) NOT NULL default '',
`Categorie` varchar(50) NOT NULL default '',
PRIMARY KEY (`id_tvrip`)
)

quand je consulte mon site en ligne j'ai ce message d'erreur :

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 '-1' at line 1

Pourriez-vous m'aider ?

Par avance je vous en remercie