[RESOLU] Requête PDO exécutée avec le terminal

Eléphant du PHP | 88 Messages

18 avr. 2016, 20:47

Bonjour à tous :)
Je cherche a réaliser un script php qui liste tous les prénoms et noms d'utilisateurs. Jusque là... Rien de bien difficile :)
Je souhaite également que ce script puissent être exécuté dans le Terminal (CMD pour les windows).
Voici le script (basique) :

Code : Tout sélectionner

$pdo = new PDO('mysql:host=localhost;dbname=TEST', 'root', 'root'); $sql = "SELECT last_name, first_name FROM users"; $request = $pdo->query($sql); while($value = $request->fetch()){ echo $value["last_name"]." ".$value["first_name"].'<br>'; }
Ce code marche très bien sur navigateur web mais lorsque je le lance avec le Terminal via la commande
php ListCommand.php
cela me retourne l'erreur suivante :
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /Applications/MAMP/htdocs/TEST/Command/ListCommand.php:2
Stack trace:
#0 /Applications/MAMP/htdocs/TEST/Command/ListCommand.php(2): PDO->__construct('mysql:host=loca...', 'root', 'root')
#1 {main}
thrown in /Applications/MAMP/htdocs/TEST/Command/ListCommand.php on line 2

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /Applications/MAMP/htdocs/TEST/Command/ListCommand.php:2
Stack trace:
#0 /Applications/MAMP/htdocs/TEST/Command/ListCommand.php(2): PDO->__construct('mysql:host=loca...', 'root', 'root')
#1 {main}
thrown in /Applications/MAMP/htdocs/TEST/Command/ListCommand.php on line 2
J'aimerai donc savoir pourquoi cela me retourne ça et aussi, comment faire pour que le script fonctionne. :)
Merci pour votre attention et bonne fin de journée ;)
Le temps donne sa légitimité à l'existence...

ViPHP
ViPHP | 928 Messages

19 avr. 2016, 02:53

Salut,

Essaie de remplacer "localhost" par "127.0.0.1".

Eléphant du PHP | 88 Messages

19 avr. 2016, 08:25

Merci Genova c'est bien cela qu'il fallait mettre.

Code : Tout sélectionner

$pdo = new PDO('mysql:host=127.0.0.1:8889;dbname=TEST', 'root', 'root'); $sql = "SELECT last_name, first_name FROM users"; $request = $pdo->query($sql); while($value = $request->fetch()){ echo $value["last_name"]." ".$value["first_name"].'<br>'; }
Cela marche mais les lignes ne sont pas sautées meme en remplaçant <br> par \n.
As tu une idée :) ???
Le temps donne sa légitimité à l'existence...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

19 avr. 2016, 09:19

Bonjour,
Cela marche mais les lignes ne sont pas sautées meme en remplaçant <br> par \n.
As tu une idée :) ???
Il faut utiliser des guillemets doubles " et pas simple ' pour que ce soit interprété comme des retours à la ligne.
Si "\n" ne fonctionne pas, essaye "\r\n".
\n est le retour à la ligne sous Unix, \r\n sous Windows.

Si ton script peut être amené à tourner sur ces 2 environnements, alors la solution la + propre est d'utiliser la constante PHP_EOL :
http://wiip.fr/content/les-constantes-p ... et-php-eol
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 88 Messages

19 avr. 2016, 09:27

Ok super merci ^^ Encore une preuve d'une bonne communauté ^^ RESOLU ^^
Le temps donne sa légitimité à l'existence...