Bugs PDO et MYSQL
avec mysqli , le numéro de port s'indique comment ?
As-tu lu la doc de la fonction mysqli_connect ? Via son 5e paramètre ... (forme procédurale comme OO)
RE,
avec mysqli , le numéro de port s'indique comment ? La connexion echoue contrairement à PDO où le port est indiqué.
Merci
Non en fait c'est tout bon, je ne sais pas ce qui se passait. Merci à vous pour votre aide.
Pour résumer :
il fallait bien mettre le port avec PDO sous cette forme ";port=xxx" après le host.
Merci merci !
Bonne journée
Gaston_Phone
16/03/2016, 07h31
$sql = "UPDATE etude SET email = :'$mail' WHERE hash_num = '$hash_key' ";
Pour info, le script fonctionne et il faut bien mentionner le port, avec le ;port=xxx
J'ai pu avancer, mais il y a quelque chose qui merdouille. Pouvez-vous me dire ce qu'il ne va pas dans ce script :
$sql = "UPDATE etude SET email = :mail WHERE hash_num = :hash_key";
$stmt = $trustConnect->prepare($sql);
$stmt->bindParam(':mail', $mail, PDO::PARAM_STR);
$stmt->bindParam(':hash_key', $hash_num_u, PDO::PARAM_STR);
$stmt->execute();
Je ne comprends pas d'ou vient mon erreur. Je ne vois rien qui me choque, et en fait la modification ne se fait pas. Je précise que toutes les variables sont OK (bien rempli). Pour le WHERE, la correspondance doit se faire... Le nom des champs est OK. Perso, je vois pas d'ou vient l'erreur (peut être l'heure tardive..).
Merci d'avance,
Gaston_Phone
15/03/2016, 17h16
Toutefois si tu dois absolument mettre un port, il faut modifier dans le script :
$DBconnect = "mysql:dbname=".$DBName.";host=".$DBhost.";port=xxx;
Envoyé par
Gaston_Phone
- - - Mise à jour - - -
Il n'est pas nécessaire d'indiquer le port. (enfin pour les serveurs SQL de base de l'hébergement mutualisé)
Ce n'est pas le port MYSQL par défaut et il a un privatesql, je pense qu'il faut indiquer le port quand même ...
Gaston_Phone
15/03/2016, 17h08
Envoyé par
t0t0
Chez PDO, le port ne s'indique pas avec le paramètre host mais via le paramètre séparé port (ex : mysql:host=localhost;port=3307 et non mysql:host=localhost:3307)
Hum! Hum! Pour le script cité en #2, le serveur se met de cette forme :
$DBhost = "mysql5-14.perso"; // Par exemple
C'est le cas réel pour un de mes sites.
- - - Mise à jour - - -
Envoyé par
asvelt
@Gaston :
// ****** Configuration - Debut ******
$DBhost = "ge92532-001.privatesql.ovh.net:35538"; // Par exemple
$DBowner = "elick_data"; // ton login SQL
$DBpw = "truc"; // ton password SQL
$DBName = $DBowner;
// ****** Configuration - Fin ******
Je mettrais :
$DBhost = "
ge92532-001.privatesql.ovh.net";
- - - Mise à jour - - -
Il n'est pas nécessaire d'indiquer le port.
(enfin pour les serveurs SQL de base de l'hébergement mutualisé)
Chez PDO, le port ne s'indique pas avec le paramètre host mais via le paramètre séparé port (ex : mysql:host=localhost;port=3307 et non mysql:host=localhost:3307)
Le support OVH (par ticket) m'a demandé de mettre en place ce code :
// on se connecte à example.com et au port 3307
$link = mysql_connect('**** HOST *** ', '***',
'Mot de passe');
if (!$link) {
die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);
?>
Le retour du script est bien "connecté correctement" : je ne comprends rien. Rien rien rien... alors que ceux sont les mêmes identifiants et tout ..
- - - Mise à jour - - -
@Gaston :
// ****** Configuration - Debut ******
$DBhost = "ge92532-001.privatesql.ovh.net:35538"; // Par exemple
$DBowner = "elick_data"; // ton login SQL
$DBpw = "truc"; // ton password SQL
$DBName = $DBowner;
// ****** Configuration - Fin ******
Encore merci pour votre aide
Gaston_Phone
15/03/2016, 16h42
En masquant le mot de passe, qu'as-tu mis ici ?
// ****** Configuration - Debut ******
$DBhost = "mysql5-6.perso"; // Par exemple
$DBowner = ""; // ton login SQL
$DBpw = ""; // ton password SQL
$DBName = $DBowner;
// ****** Configuration - Fin ******
nitrix-ud
15/03/2016, 16h40
A priori tu as quand même bien un pb avec tes paramètres de connexion.
Unknown MySQL server host..
Gaston_Phone
15/03/2016, 16h39
Envoyé par
chmod777
Il peut y avoir un délai il me semble entre le moment où tu changes le .ovhconfig et le moment où il est effectivement pris en compte.
C'est quasiment immédiat.
Voici le rapport d'erreur du script
http://www.wordetweb.com/word-et-web...ipt-PDO-FR.htm :
Version de PHP : 5.5.31
Etablissement de la connexion SQL en mode PDO
Connexion échouée : SQLSTATE[HY000] [2005] Unknown MySQL server host 'g*****(...) (deux points) port' ;
Durée du traitement = 0.00 secondes
-- oui, je viens de mettre en dev. j'ai cru comprendre mettre en env...
JE comprends pas... C'est les infos fournies par OVH...
Merci de votre aide,
Tu as bien mis développement ? et pas environnement ?
environment=development
les logs disent quoi ? (les vrais fichiers logs)
chmod777
15/03/2016, 15h49
Il peut y avoir un délai il me semble entre le moment où tu changes le .ovhconfig et le moment où il est effectivement pris en compte.
Sinon, en php, pour avoir toutes les erreurs :
Non... Toujours même page blanche... Même après avoir passé le .ovhconfig en "environment" ...
Bonjour oui c'est ce que je viens de faire
Je le fais ..
Merci pour votre réponse !
Envoyé par
ovniz
Mettez le .ovhconfig sur environment au lieu de production pour activer les erreurs PHP
Comment faire ?
Pour info, tous mes scripts commencent bien avec
Merci d'avance
je n'ai qu'une page blanche
erreur PHP ? Mettez le .ovhconfig sur environment au lieu de production pour activer les erreurs PHP il me semble sur les mutualisés
Envoyé par
Gaston_Phone
Bonjour Gaston_Phone, merci pour ta réponse.
J'ai testé : rien ne s'affiche, je n'ai qu'une page blanche (j'ai bien renseigné les variables DBx).
x étant l'host, passw ...
Merci de ton aide
Gaston_Phone
15/03/2016, 13h39
Bonjour,
J'ai un soucis avec la connexion web au serveur SQL de OVH. Les identifiants sont pourtant bons. J'ai ouvert un ticket à OVH mais il n'en est rien. Les solutions apportées par le technicien ne résolvent pas le problème.
J'ai fais les tests avec MYSQLI, MYSQL, PDO :
Pour Mysql et PDO : le script s'arrête au moment de récupérer les données . C'est à dire qu'il y a un affichage.
Pour MYSQLI : Rien, nada...
Voici le code pour PDO :
$pdo = new PDO('mysql:host=host (deux points) port;dbname=basename', 'user', 'password');
$sql = "SELECT * FROM `etude_they` WHERE `hash_num` = '$hash_num'";
$req = $pdo->query($sql);
$h = 1;
while($row = $req->fetch()) {
echo security::html($row['nadd']);
}
?>
Rien ne s'affiche, alors que les paramètres de connexions sont OK
La table etude_they existe bien avec les bons champs (nadd) OK
$hash_num est bien configuré....
Tout semble être OK mais RIEN !!!
Quelqu'un peut m'aider dans cette galère svp ?
Merci
Bonjour,
J'ai un soucis avec la connexion web au serveur SQL de OVH.
Les identifiants sont pourtant bons.
J'ai ouvert un ticket à OVH mais il n'en est rien. Le technicien n'aide en rien (malgré ses solutions) puisque c'est des solutions déjà effectuées de mon côté.
J'ai essayé avec trois fonctions différentes : MSQLI , MYSQL , PDO.
Pour MSQL et PDO, les résultats se rejoignent malgré qu'ils ne soient pas concluant. D'après un script fourni par le technicien OVH, la connexion au serveur est établie. Mais ça coince quand il s'agit de récupérer les données... (fonction fetch). Puis tout le reste de la page s'arrête. Je n'ai pas de message d'erreur. Ca fait comme si, j'avais mis un exit()...
Je ne comprends pas, j'ai fais par mysqli et PDO, les deux bugs à mort. Des solutions à apporter ?
Merci,
Asvelt