OVH Community, votre nouvel espace communautaire.

Bugs PDO et MYSQL


t0t0
16/03/2016, 12h40
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)

asvelt
16/03/2016, 08h41
RE,

avec mysqli , le numéro de port s'indique comment ? La connexion echoue contrairement à PDO où le port est indiqué.

Merci

asvelt
16/03/2016, 07h58
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' ";

asvelt
15/03/2016, 23h24
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;

buddy
15/03/2016, 17h15
Citation 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
Citation 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 - - -

Citation 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é)

t0t0
15/03/2016, 16h57
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)

asvelt
15/03/2016, 16h44
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
Citation 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.

asvelt
15/03/2016, 16h38
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,

buddy
15/03/2016, 16h09
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 :

asvelt
15/03/2016, 15h47
Non... Toujours même page blanche... Même après avoir passé le .ovhconfig en "environment" ...

asvelt
15/03/2016, 15h42
Bonjour oui c'est ce que je viens de faire
Je le fais ..

buddy
15/03/2016, 15h41
Bonjour,

https://www.google.fr/search?q=mettr...ent+production

asvelt
15/03/2016, 15h37
Merci pour votre réponse !
Citation 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

ovniz
15/03/2016, 14h39
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


asvelt
15/03/2016, 14h20
Citation 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
Essaie : http://www.wordetweb.com/word-et-web...ipt-PDO-FR.htm

asvelt
15/03/2016, 13h33
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

asvelt
15/03/2016, 13h26
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