Fout connection.php

  • Hallo,


    ik heb het volgende script van het internet gehaald om een connectie met het database te leggen. Echter krijg ik alleen een wit scherm, ik heb Error_reporting aangezet en krijg niks.


    Ik weet zeker dat het aan dit stukje code ligt aangezien ik gewoon mijn form krijg als ik de include weg haal.


    het script:


    Zou iemand hier mij mee kunnen helpen?


    met vriendelijke groet,


    Frank sijbom

  • Guest, wil je besparen op je domeinnamen? (ad)
  • De try moet inderdaad in de construct staan. Want nu zeg je nergens waar die uitgevoerd moet worden, staat namelijk niet in een function.


    Of maak er een aparte functie van of je moet hem in de construct zetten.


    Daarnaast moet de catch als volgt zijn:


    PHP
    <?php
    catch (PDOException $e) {
    return $e->getMessage();
    		die();
    	}
    ?>


    Hoop dat je er wat mee kan.

  • Hallo.


    Ook dit heb ik aangepast, het script ziet er nu als volgt uit:




    Met vriendelijke groet,


    Frank sijbom

  • die die() is nergens voor nodig.



    aanroepen:


    $db = new Connection();
    $db->Connect();


    Waarom wil je host, user etc public hebben? Dat betekend dat andere instanties/classes die mogen/kunnen uitlezen iets wat je om veiligheidsredenen niet wil. Heb ze nu op private gezet.

  • Hallo.
    Heb het wederom even aagepast, bedankt voor het aangeven dat het private had moeten zijn. Ik heb dit script van het internet en heb dus nog niks aangepast.


    Heb nog steeds een wit scherm en ik roep nog niks aan. Dit is mijn index.php:



    Met vriendelijke groet,


    Frank sijbom

  • Maybe deze?



    Anders staat er op de concurrent een andere pdo classe die minimalistisch is.


  • Citaat

    ini_set("display_errors","on");
    error_reporting(E_ALL);


    Je roept hier ook tot 2x error reporting. Tegenwoordig kan je alleen al door je ini aante roepen de fouten laten weergeven.


  • en dan mijn versie van de database class zoals weergegeven :-)!
    aanroepen doe je door:


    Code
    <php
    $db = database::getInstance();
    $db->init(hostname, username, password, database, array(options));
  • Hallo.


    Ik ben het lijstje even afgegaan, en tot nu toe heb ik nog steeds een wit scherm. Ik heb error_reporting weggehaalt en het zo gedaan zo als SC-scripting het aangaf. Heb echter weer geen fouten.
    Heb het script van Patrick ook geprobeerd en ook aangeroepen in index.php. Wederom een wit scherm.


    Zou het probleem niet aan de host kunnen liggen? Ik heb een webhosting bij one.com.


    Ik heb ook even phpinfo() online gezet misschien kunnen jullie hier wat vinden..


    phpinfo()


    Bij voorbaat dank,


    Frank sijbom

  • @Ferhat :


    PDO


    PDO supportenabled
    PDO drivers mysql, sqlite


    pdo_mysql


    PDO Driver for MySQLenabled
    Client API version mysqlnd 5.0.8-dev - 20102224 - $Id: 731e5b87ba42146a687c29995d2dfd8b4e40b325 $


    DirectiveLocal ValueMaster Value
    pdo_mysql.default_socket/var/run/sockproxy.sock/var/run/sockproxy.sock


    Volgens mij wel.


    Ik het ook even gekeken via PDO:getAvailableDrivers(); en daar kwam dit uit:
    Array ( [0] => mysql [1] => sqlite )


    Naar mijn idee hoort dit goed te zijn?


    Edit:
    Ik heb het eens anders geprobeerd, heb nu geen classes meer en nu werkt het wel. Het is niet hoe ik het wou maar goed het moet dan maar zo.


    Iedereen bedankt!


    Met vriendelijke groet,


    Frank sijbom

  • Vergeet ook vooral niet een character encoding in te stellen. Dat voorkomt echt een hele hoop problemen met in het ergste geval corrupte data in je database.


    Vanaf PHP versie 5.3.6 kun je deze meegeven aan je Data Source Name (DSN - je "connectie string") via de charset-parameter. Oudere PHP-versies negeren deze parameter. In die gevallen zou je de character encoding via de (connectie)optie PDO::MYSQL_ATTR_INIT_COMMAND moeten instellen.


    Tevens:
    * Persistente connecties... Ik weet niet of dat enige meerwaarde heeft.
    * Daarnaast kan het iets sneller zijn om voor de host altijd een IP op te geven, dat scheelt je weer een lookup.


    Citaat

    Je roept hier ook tot 2x error reporting. Tegenwoordig kan je alleen al door je ini aante roepen de fouten laten weergeven.

    Nope. Met display_errors geef je aan of je fouten wilt weergeven. Dit is een PHP_INI_ALL instelling en mag je dus overal neerzetten. Met error_reporting() geef je aan welke fouten worden weergegeven. Dit zijn twee verschillende dingen.


  • Oh, ja daar heb ik inderdaad niet aan gedacht. Ik ging er vanuit dat zodra je je .ini aanroept hij alle geselecteerde foutmeldingen oppakte.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!