Code qui ne marche pas

Résolu
armelk1999 Messages postés 24 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 14 avril 2019 - Modifié le 17 juil. 2018 à 17:58
jordane45 Messages postés 37290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 mars 2023 - 31 juil. 2018 à 17:00
BONJOUR
regarder un peu ce code s'il vous plait.lorsque je le compile on me signale des erreurs:
<?php
function db_query($db_name, $sql) {

  $sql = str_replace("# ", "", $sql); // basic shield against sql injections
  $sql = str_replace("#' ", "", $sql);

  global $db_connection_type, $db_server_address, $db_user, $db_password;

  switch($db_connection_type) {

   case "odbc":
   $db_connection = odbc_connect($db_name, $db_user, $db_password);
   $result = odbc_exec($db_connection, $sql);
   break;

   case "mysql":
   $db_connection = mysql_connect($db_server_address, $db_user, $db_password);
   $result = mysql_query($db_name, $sql, $db_connection);
  }

  return $result;
 }

 function fetch_array($array) {

  global $db_connection_type;

  switch($db_connection_type) {

   case "odbc":
   $result = odbc_fetch_array($array);
   break;

   case "mysql":
   $result = mysql_fetch_array($array);
  }

  return $result;
 }
?>


EDIT : AJout des balises de code (et du "bonjour" ) !

1 réponse

jordane45 Messages postés 37290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 mars 2023 341
17 juil. 2018 à 18:01
Bonjour,

1 - Tu utilises (dans ton CASE mysql ) l'ancienne extension mysql ... hors elle est obsolète ! Tu dois passer à PDO ou mysqli

2 - Si tu as des messages d'erreur... ben.. donnes le nous ! Ca nous aidera certainement à t'indiquer les soucis sans avoir à chercher des plombes.


NB: A l'avenir, merci d'utiliser les BALISES DE CODE ( la coloration syntaxique) lorsque tu postes du code sur le forum.
Explications disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
armelk1999 Messages postés 24 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 14 avril 2019
23 juil. 2018 à 10:59
voici les erreurs jordan: Warning: mysql_query() expects at most 2 parameters, 3 given in C:\wamp\www\openbookings\connect_db.php on line 47 et

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\wamp\www\openbookings\connect_db.php on line 64

essaie un peu d'y jetter un oeil.
0
armelk1999 Messages postés 24 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 14 avril 2019
23 juil. 2018 à 11:16
voici connect_db.php:
<?php


/* OpenBookings - Copyright (C) 2005-2007 Jérôme ROGER (jerome@openbookings.org)

connect_db.php - This file is part of OpenBookings.org (http://www.openbookings.org)

OpenBookings.org is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

OpenBookings.org is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with OpenBookings.org; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */

// Database connection mode abstraction (2 functions)

// Connects to database according the selected connection type
function db_query($db_name, $sql) {

$sql = str_replace("# ", "", $sql); // basic shield against sql injections
$sql = str_replace("#' ", "", $sql);

global $db_connection_type, $db_server_address, $db_user, $db_password;

switch($db_connection_type) {

case "odbc":
$db_connection = odbc_connect($db_name, $db_user, $db_password);
$result = odbc_exec($db_connection, $sql);
break;

case "mysql":
$db_connection = new mysqli($db_server_address, $db_user, $db_password);
// $servername = "localhost";
// $username = "root";
// $password = "";
// $dbname = "openbookings";
// $db_connection=new mysqli($servername,$username,$password,$dbname);
// if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error);}
$result =mysql_query($db_name, $sql, $db_connection);
}

return $result;
}

function fetch_array($array) {

global $db_connection_type;

switch($db_connection_type) {

case "odbc":
$result = odbc_fetch_array($array);
break;

case "mysql":
$result = mysql_fetch_array($array);
}

return $result;
}
?>
0
jordane45 Messages postés 37290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 mars 2023 341
23 juil. 2018 à 12:15
1 - Comme je te l'ai déjà indiqué ....... pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE !
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


2 - Le message d'erreur est pourtant clair

mysql_query() expects at most 2 parameters, 3 given

Et quand tu regardes ton code :
mysql_query($db_name, $sql, $db_connection);

tu vois bien qu'il y a trois paramètres...... alors qu'il ne devrait y en avoir que deux!
En regardant La documentation Tu peux voir que pour l'utiliser il suffit de :
mysql_query($sql, $db_connection);

ou éventuellement
mysql_query($sql);


AU passage, il te manque l'instruction pour selectionner la BDD .....
Voir la documentation officielle de php : http://php.net/manual/fr/function.mysql-query.php


3 - Mais vu que tu as un script connect_db.php ... pourquoi vouloir le modifier ???
Ce script utilise mysqli qui est préférable à l'ancienne extension mysql que toi tu essayes d'utiliser....

As tu au moins lu les liens que je t'avais donné ?????!!!!
0
armelk1999 Messages postés 24 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 14 avril 2019
23 juil. 2018 à 17:24
merci . désolé je me suis juste un peu précipité
0
armelk1999 Messages postés 24 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 14 avril 2019
23 juil. 2018 à 17:31
en fait j'utilise wampserver 2.5 et je ne sais si c'est a cause que ce code ne marche pas.devrais-je telecharger une version de php et wampserver superiur a celle que j'aie?
0
Rejoignez-nous