PDO connect error 110
Op aanraden van een aantal forumleden vandaag PDO gaan gebruiken. Meteen een dikke error waar ik niet voorbij kom.
Waarom kan dit wel:
En dit niet:
Error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'db.****.nl' (110)' in /public/sites/www.****.nl/test3.php:45 Stack trace: #0 /public/sites/www.****.nl/test3.php(45): PDO->__construct('mysql:host=db.f...', '****', '****') #1 {main} thrown in /public/sites/www.****.nl/test3.php on line 45
Waarom kan dit wel:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
DB_USER = '****';
DB_PASS = '****';
$db = new PDO('mysql:host=db.****.nl;dbname=****', DB_USER, DB_PASS);
?>
DB_USER = '****';
DB_PASS = '****';
$db = new PDO('mysql:host=db.****.nl;dbname=****', DB_USER, DB_PASS);
?>
En dit niet:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
DB_USER = '****';
DB_PASS = '****';
PDO_DSN = 'mysql:host=db.****.nl;dbname=****';
$db = new PDO(PDO_DSN, DB_USER, DB_PASS);
?>
DB_USER = '****';
DB_PASS = '****';
PDO_DSN = 'mysql:host=db.****.nl;dbname=****';
$db = new PDO(PDO_DSN, DB_USER, DB_PASS);
?>
Error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'db.****.nl' (110)' in /public/sites/www.****.nl/test3.php:45 Stack trace: #0 /public/sites/www.****.nl/test3.php(45): PDO->__construct('mysql:host=db.f...', '****', '****') #1 {main} thrown in /public/sites/www.****.nl/test3.php on line 45
Gewijzigd op 29/12/2010 16:22:44 door The Ultimate
Lokale database?
Mike Smit op 29/12/2010 16:28:06:
Nope. Live.Lokale database?
Heb je wel de bevoegdheid om vanaf jouw domein de server te connecten? (Firewall)
Gewijzigd op 29/12/2010 16:47:32 door Mike Smit
Mike Smit op 29/12/2010 16:46:07:
Kun je uitleggen wat je precies bedoelt?Heb je wel de bevoegdheid om vanaf jouw domein de server te connecten?
Draait de web server op dezelfde server als de MySQL server?
Soms mag je geen verbinding van localhost maken met een db server die je hebt van je hosting. (Eigenlijk altijd.)
Aan de hand van het voorbeeld wat je nu geeft, kan je stellen dat je wellicht het probeert te doen op deze manier.
Aan de hand van het voorbeeld wat je nu geeft, kan je stellen dat je wellicht het probeert te doen op deze manier.
Je moet er voor zorgen dat je provider je toestemming geeft om de server vanaf een ander domein te benaderen.
Toevoeging op 29/12/2010 16:51:29:
Toevoeging op 29/12/2010 16:51:29:
Karl Karl op 29/12/2010 16:49:06:
Soms mag je geen verbinding van localhost maken met een db server die je hebt van je hosting. (Eigenlijk altijd.)
Aan de hand van het voorbeeld wat je nu geeft, kan je stellen dat je wellicht het probeert te doen op deze manier.
Aan de hand van het voorbeeld wat je nu geeft, kan je stellen dat je wellicht het probeert te doen op deze manier.
Karl Karl op 29/12/2010 16:49:06:
Ik werk aan een live site (nog niet bereikbaar voor publiek). Dat is toch niet via een localhost?Soms mag je geen verbinding van localhost maken met een db server die je hebt van je hosting. (Eigenlijk altijd.)
Sorry hoor, maar ik snap echt niet wat jullie bedoelen. Ik kan namelijk altijd bij mijn databases. Ik heb zelfs ook al verbinding gemaakt en values geinput. Alleen via een ander script.
Mijn vraag was gewoon waarom het een wel werkt en het ander niet. Er staat toch 2x precies hetzelfde? Alleen de ene keer gebruik ik een constante en de andere keer niet.
Kun je met een niet PDO connectie wel verbinden?
Mike Smit op 29/12/2010 17:07:07:
Ja, en ik kan ook MET een PDO connectie verbinden. Dat is ook mijn vraag niet.Kun je met een niet PDO connectie wel verbinden?
Error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'db.****.nl' (110)' in /public/sites/www.****.nl/test3.php:45 Stack trace: #0 /public/sites/www.****.nl/test3.php(45): PDO->__construct('mysql:host=db.f...', '****', '****') #1 {main} thrown in /public/sites/www.****.nl/test3.php on line 45
Nee je kunt niet verbinden.
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'db.****.nl' (110)' in /public/sites/www.****.nl/test3.php:45 Stack trace: #0 /public/sites/www.****.nl/test3.php(45): PDO->__construct('mysql:host=db.f...', '****', '****') #1 {main} thrown in /public/sites/www.****.nl/test3.php on line 45
Nee je kunt niet verbinden.
Mike Smit op 29/12/2010 17:16:32:
Gast, hou alsjeblieft op met het vervuilen van mijn topic. Ik zeg toch zelf al in de beginpost dat het niet lukt om op die manier te verbinden? Lees mijn beginpost anders nog eens door...Nee je kunt niet verbinden.
Denk je dan dat het iets toevoegt als je nog een keer zegt dat ik geen verbinding krijg? Nee dus!
Gewijzigd op 29/12/2010 17:19:42 door The Ultimate
Prima ik zal je topic niet meer "vervuilen".
heet de host wellicht 'localhost'?
Edit: je lijkt constanten te gebruiken; die zet ik altijd met define(). Ik weet zo niet zeker of je fragmenten uit de topicstart wel echt gelijkwaardig zijn.
Edit: je lijkt constanten te gebruiken; die zet ik altijd met define(). Ik weet zo niet zeker of je fragmenten uit de topicstart wel echt gelijkwaardig zijn.
Gewijzigd op 29/12/2010 17:28:48 door Bas Cost Budde
Bas Cost Budde op 29/12/2010 17:22:36:
Lijkt me niet, aangezien het volgende gewoon werkt:heet de host wellicht 'localhost'?
Code (php)
1
2
3
4
5
2
3
4
5
<?php
DB_USER = '****';
DB_PASS = '****';
$db = new PDO('mysql:host=db.****.nl;dbname=****', DB_USER, DB_PASS);
?>
DB_USER = '****';
DB_PASS = '****';
$db = new PDO('mysql:host=db.****.nl;dbname=****', DB_USER, DB_PASS);
?>
Het lijkt er gewoon op alsof ik "'mysql:host=db.****.nl;dbname=****'" niet mag vervangen voor een constante.
ja dat lijkt me wel gek. Het *zou* met de PDO-implementatie te maken kunnen hebben... nooit nog gemerkt dat je op de plek van een string geen constante mag gebruiken.
Wil je eens uitproberen of 'localhost' in de string-variant een connectie oplevert? En wil je ook eens proberen of je met
verder komt?
Wil je eens uitproberen of 'localhost' in de string-variant een connectie oplevert? En wil je ook eens proberen of je met
verder komt?
ik weet niet of het helpt maar in het eerst stuk het met aanhalingstekens
in het 2de stuk staat er
waar PDO_DSN dus volgens mij mysql:host=db.****.nl;dbname=**** geeft en er dus zonder '' staat
in het 2de stuk staat er
Code (php)
1
2
2
PDO_DSN = 'mysql:host=db.****.nl;dbname=****';
$db = new PDO(PDO_DSN, DB_USER, DB_PASS);
$db = new PDO(PDO_DSN, DB_USER, DB_PASS);
waar PDO_DSN dus volgens mij mysql:host=db.****.nl;dbname=**** geeft en er dus zonder '' staat
Geen idee waarom, maar met een constante werkt dit inderdaad niet.
Zet je hem in een variabele dan werkt het wel.
Dus de vraag zou beter kunnen zijn:
Waarom kan een constante niet behandeld worden als een string?
Zet je hem in een variabele dan werkt het wel.
Dus de vraag zou beter kunnen zijn:
Waarom kan een constante niet behandeld worden als een string?
PHP Jasper: *dat* maakt niets uit. De quotes zijn syntax, wat er naar de constructor gaat is de inhoud van de string (of de constante. Oh nee, die dus niet :) )
Edit: niet te lang over nadenken, gewoon een variabele gebruiken. Kennelijk is het 'immutable' karakter van een constante iets teveel gevraagd van PDO.
Edit: niet te lang over nadenken, gewoon een variabele gebruiken. Kennelijk is het 'immutable' karakter van een constante iets teveel gevraagd van PDO.
Gewijzigd op 29/12/2010 17:38:44 door Bas Cost Budde
ok




