Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
pardal486
Člen
Avatar
pardal486:17.2.2013 1:16

Zdravím. Ano jsem tu zase a mám zase problém.Mám tyto zdrojové kódy:

// dbconnect.php
<?php

class dbconnect
{
    private $spojeni;

    function __construct($host,$user,$pass,$name)
    {
        $options = array
        (
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAME utf8"
        );
        $this->spojeni = @new PDO("mysql:host=$host;dbname=$name",$user, $pass, $options);
    }

    function query($query, $param=Array())
    {
        $navrat=$this->spojeni->prepare($query);
        $navrat->execute($param);
        return $navrat->rowCount();
    }

    function queryOne($query, $param=Array())
    {
        $navrat=$this->spojeni->prepare($query);
        $navrat->execute($param);
        return $navrat->fetch(PDO::FETCH_ASSOC);
    }

    function queryAll($query, $param=Array())
    {
        $navrat=$this->spojeni->prepare($query);
        $navrat->execute($param);
        return $navrat->fetchAll(PDO::FETCH_ASSOC);
    }
}

?>
// index.php
<?php
require "dbconnect.php";
$db = new dbconnect("localhost","root","","novinky");
?>

Ale místo připojení se k databázi mi to vypisuje tuto chybu:

Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1193] Unknown system variable 'NAME'' in C:\xampp\htdocs\Super slovak gaming\dbconnect.php:14
Stack trace:
#0 C:\xampp\htdocs\Super slovak gaming\dbconnect.php(14): PDO->__construct('mysql:host=loca...', 'root', '', Array)
#1 C:\xampp\htdocs\Super slovak gaming\index.php(3): dbconnect->__construct('localhost', 'root', '', 'novinky')
#2 {main}
  thrown in C:\xampp\htdocs\Super slovak gaming\dbconnect.php on line 14

Nevíte někdo co s tím? Toto mi vypisuje na localhostu i po nahrátí na webhosting (samozřejmě se správnými údaji k databázi).

Editováno 17.2.2013 1:17
Odpovědět
17.2.2013 1:16
Bite my shiny, metal ass!
Avatar
pardal486
Člen
Avatar
pardal486:19.2.2013 8:44

Prosím poraďte :(

Nahoru Odpovědět
19.2.2013 8:44
Bite my shiny, metal ass!
Avatar
Kit
Tvůrce
Avatar
Odpovídá na pardal486
Kit:19.2.2013 10:11

Máš to napsáno v chybovém hlášení. Místo "SET NAME utf8" má být "SET NAMES utf8".

Nahoru Odpovědět
19.2.2013 10:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
pardal486
Člen
Avatar
Odpovídá na Kit
pardal486:19.2.2013 14:26

Aha a já myslel že system variable 'NAME' se myslí jméno db $name :D Díky

Nahoru Odpovědět
19.2.2013 14:26
Bite my shiny, metal ass!
Avatar
Kit
Tvůrce
Avatar
Odpovídá na pardal486
Kit:19.2.2013 14:29

dbname=$name je na jiném místě a má jinou úlohu. SET NAMES utf8 nastavuje znakovou sadu.

Nahoru Odpovědět
19.2.2013 14:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 5 zpráv z 5.