Triko zdarma Triko zdarma
Spouštíme individuální výuku programování! Zaváděcí slevy 799 Kč 499 Kč/60 minut se zkušeným lektorem! Výuka osobně Praha a okolí nebo po Skype celá ČR. O termíny a slevu si pište na [email protected].
Extra 10 % bodů navíc a tričko zdarma při zadání kódu "TRIKO10"
Avatar
Tomáš Kůželka:3.4.2018 18:07

Zdravím. Mám v PC webovou stránku. Která má ukládání přes MySQl, jenže v kódu mám věci co podporují jen ve verzi PHP 7. A to připojení MySQL naopak na verzi 7 nefunguje jelikož syntaxe jsou na verzi 5.6?. Dokázal by mi někdo pomocí to předělat na ty nové? Zkoušel jsem to a přestalo mi to fungovat, takže dělám stále někde chybu. Děkuji za pomoc.

<?php
        /* DATABASE CONFIGURATION */
define('DB_SERVER', 'hosting');
define('DB_USERNAME', 'uzivatel');
define('DB_PASSWORD', 'heslo');
define('DB_DATABASE', 'nazev');
        function getDB()
{
    $dbHost = DB_SERVER;
    $dbUser = DB_USERNAME;
    $dbPass = DB_PASSWORD;
    $dbName = DB_DATABASE;
    try
{
        $dbConnection = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8", $dbUser, $dbPass);
$dbConnection->exec("set names utf8");
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $dbConnection;
    }
catch (PDOException $e)
{
        echo 'pripojeni k databazi bylo neuspesne: ' . $e->getMessage();
    }
}
        ?>
 
Odpovědět 3.4.2018 18:07
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.5.2018 15:40

Jakou chybu ti to pise? Kod ktery jsi dal je dobre nebo spatne?

$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

To asi neni treba nastavovat.

return $dbConnection;

Nevim, zda z try jde returnovat, ja bych to dal az na konec funkce. Ja mam v try ciste jenom connect a ukladam si ho v classe do promenne.

function connect($cfg)
{
try     {
        $this->conn = new PDO('mysql:host='.$cfg['host'].';dbname='.$cfg['db'], $cfg['user'], $cfg['psw'], $cfg['opt']);
        }
catch (PDOException $e)
        {
        $this->error($e->getMessage());
        }
}

Ted nemuzu zrovna najit tu spravnou class. Opt nastavuji nejak takto. Pouzivam bud normal pripojeni a nebo trvalejsi pro pro vice prikazu najednou. Prepare nepouzivam.

$cfg['opt'][PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES utf8';
nebo
$cfg['opt'][PDO::ATTR_PERSISTENT] = true;
$cfg['opt'][PDO::ATTR_ERRMODE]    = PDO::ERRMODE_EXCEPTION;
 
Nahoru Odpovědět 3.5.2018 15:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.