mysql php5.6 vs mysqli php7.2

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mysql php5.6 vs mysqli php7.2

Re: mysql php5.6 vs mysqli php7.2

par @rthur » 21 déc. 2018, 14:36

Attention à la portée des variables.
Une variable (qui contient la connexion à ta bdd dans ton cas) définit en dehors d'une fonction, ne peut pas être appelé au sein de cette fonction sauf :
- si elle a été déclarée en global
- ou si elle est passée en paramètre
http://www.lephpfacile.com/cours/21-la- ... -variables

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 11:21

Y A DU PROGRES!!!
si je colle dans ma fonction la connexion, la bdd affiche le nom du site
function sitename ()
{$mysqli = mysqli_connect($host_name, $user_name, $password, $database);
$requete = "SELECT * FROM config_table";
$resultat = $mysqli->query($requete) or die ('Erreur '.$requete.' '.$mysqli->error);
$ligne = $resultat->fetch_assoc();
echo 'nom du site '.$ligne["sitename"].' description '.$ligne["sitedesc"]; 
}
affichage:
nom du site Association Zikadonf description Gestion des membres
visiblement le soucis est dans l'include?
ERRATUM
l'include n'a rien à voir, si je met la connexion hors de ma fonction l'erreur revient.
Si je met l'include dans chaque fonction le problème est résolu, mais je pense qu'il y a un autre moyen?

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 11:08

Si tu n'as pas modifié ton code de connexion précédent, tu as un problème de variables qui ne devrait pas être entre guillemets
J'utilise le code fourni par 1&1 mysqli, copier/coller de la bdd sélectionnée.
j'essaie d'appliquer les lignes de https://www.notre-planete.info/PHP/cours_13.php en les adaptant à ma table mais toujours le même bug ligne 50

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 10:51

Vu que je suis un boulet je cherche avec mes armes:
j'ai un include config.php avec
$conn = mysqli_connect($host_name, $user_name, $password, $database);
si je passe par dessus, je colle ma connexion dans la fonction j'ai un affichage propre mais sans la liste, retour au point de départ mais sans erreur apparente.
si je laisse l'include, le site me dit que je suis connecté (peut être à tort?) et une erreur en ligne 50 de fonction.php
je suis paumé

Re: mysql php5.6 vs mysqli php7.2

par @rthur » 21 déc. 2018, 10:35

Call to a member function query() on null
Ce message d'erreur veut dire que tu fais un appel à query() sur un objet inexistant :arrow: Donc que ta connexion à la bdd a échouée.

Si tu n'as pas modifié ton code de connexion précédent, tu as un problème de variables qui ne devrait pas être entre guillemets

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 10:27

OK, vérification des données, modification du mdp.
connexion établie à la bdd
retour à la case départ
erreur actuelle:
[quoteFatal error: Uncaught Error: Call to a member function query() on null in ... function.php on line 50[/quote]
ligne 50:
$res = $conn->query($req);
code de ma fonction:
	function sitename ()
	{

if (mysqli_connect_errno()) {
    die('<p>La connexion au serveur MySQL a échoué: '.mysqli_connect_error().'</p>');
} else {
    echo '<p>Connexion au serveur MySQL établie avec succès.</p >';
}	
	$req = "SELECT * FROM config_table";
	$res = $conn->query($req);
	$sitename = mysqli_fetch_array ($res);
		$association = $sitename['sitename'];
		$associationdescription = $sitename['sitedesc'];

    $html  ="        <div id='top'>";
    $html .="            <div class='head'>";
    $html .="                <h1 class='logo'><a href='index.php' title='$association'>$association</a></h1>";
    $html .="                <h2>$associationdescription</h2>";
    $html .="            </div>";
    $html .="        </div>	";

	echo "$html";

	}
j'ai trouvé un lien qui devait m'aider à coder les nouvelles requetes, le lien -> https://www.linuxtricks.fr/wiki/php-pas ... es-de-base

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 10:00

if (!$conn ) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}
Pour voir le problème
retour:
Error: Unable to connect to MySQL. Debugging errno: 2002 Debugging error: php_network_getaddresses: getaddrinfo failed: Name or service not known
je vérifie mes infos sql sur 1&1 tout de suite, mais ça fonctionnait avant le passage en php7
merci pour ton aide

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 09:55

ARF!!!!!
Je change de braquet!
je viens de tenter:
$con = mysqli_connect('$host', '$username', '$password', '$dbname');
		
//$con = mysqli_connect("localhost","my_user","my_password","my_db");

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
mon retour:
Failed to connect to MySQL: php_network_getaddresses: getaddrinfo failed: Name or service not known
que dois je en déduire?
appeler 1&1?

Re: mysql php5.6 vs mysqli php7.2

par kevin254kl » 21 déc. 2018, 09:51

Le var_dump que tu as fait est dans la fonction ou au moment ou tu fais

Code : Tout sélectionner

$conn = mysqli_connect('$host', '$username', '$password', '$dbname');
?

Es-tu certains de tes informations de connexions?

Ajoute en dessous (trouvé sur la doc)

Code : Tout sélectionner

if (!$conn ) { echo "Error: Unable to connect to MySQL." . PHP_EOL; echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; exit; }
Pour voir le problème

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 09:42

Dons mon fichier j'ai un include ("config.php"); qui contient mon $conn
serait ce une partie du problème?

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 09:32

Salut,

Peux tu faire un var_dump de $conn dans ta fonction et au moment de l'initialisation après ton new?
ok, après une recherche rapide sur var_dump j'ai fait
var_dump($conn);
à la place de ma fonction et elle affiche
NULL

Re: mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 09:27

Salut,

Peux tu faire un var_dump de $conn dans ta fonction et au moment de l'initialisation après ton new?
merci pour ta réponse rapide,
je suis débutant, j'ai recopié il y a longtemps en php5, quel code veux tu que je teste exactement dans ma fonction :(

Re: mysql php5.6 vs mysqli php7.2

par kevin254kl » 21 déc. 2018, 09:25

Salut,

Peux tu faire un var_dump de $conn dans ta fonction et au moment de l'initialisation après ton new?

mysql php5.6 vs mysqli php7.2

par zika1972 » 21 déc. 2018, 09:15

Bonjour,
j(ai un site privé qui liste les adhérents de mon association, objectif: lister et afficher des statistiques en temps réel! Un outil extra pour remplir une demande de subvention.
Je suis hébergé chez 1&1, php5.6 abandonné, je passe obligatoirement en php7.2 recommandé par l hébergeur.
l'architecture de mon site html est ok, il s'affiche correctement mais il est incapable d’exécuter une requête, liste vide!
Suite à une recherche rapide, je modifie toutes mes requêtes sql via notepad.
le code actuel qui ne fonctionne pas sou php7.2
$conn = mysqli_connect('$host', '$username', '$password', '$dbname');	
function sitename ()
	{
	$req = "SELECT * FROM config_table";
	$res = $conn->query($req);
	$sitename = mysqli_fetch_array ($res);
		$association = $sitename['sitename'];
		$associationdescription = $sitename['sitedesc'];

    $html  ="        <div id='top'>";
    $html .="            <div class='head'>";
    $html .="                <h1 class='logo'><a href='index.php' title='$association'>$association</a></h1>";
    $html .="                <h2>$associationdescription</h2>";
    $html .="            </div>";
    $html .="        </div>	";

	echo "$html";

	}
tout est codé de la même façon, donc j'ai l'erreur suivante
Fatal error: Uncaught Error: Call to a member function query() on null in /homepages/***/function.php:44 Stack trace: #0 /homepages/***/header.php(11): sitename() #1 /homepages/36/d556955629/htdocs/zikablog/association/index.php(12): include('/homepages/...') #2 {main} thrown in /homepages/***/function.php on line 44
en ligne 44 j'ai
	$res = $conn->query($req);
voilà l'état du site actuel.
merci d'avance pour votre aide.
Franck