Autor Zpráva
gooner47
Profil *
dobrý den má tento scrip pro připojení do db :
<?php

    $config = array(
        "host" => "localhost",
        "user" => "root",
        "pass" => "",
        "name" => "administrace",
    );

    require_once 'NotORM.php';
    
    $dsn = sprintf("mysql:host=%s;dbname=%s", $config["host"], $config["name"]);
        $pdo = new PDO($dns, $config["user"], $config["pass"]);
        $db = new NotORM($pdo);

Ale vždy mi to vyplivne:

No database selected

Ale když použiju script kterej sem používal dřív vše funguje děkuji za každou radu!

mysql_connect($config['host'], $config['user'], $config['pass']);
mysql_select_db($config['name']) or die("Chyba! Databáze nebo tabulka nebyla nalezena!");
mysql_query("SET NAMES 'utf8'");
DJ Miky
Profil
Vytváříš proměnnou $dsn, ale na dalším řádku používáš $dns.
gooner47
Profil *
Děkuji.

Jěstě by se chtěl zeptat jestli má takto vypadat PDO pro zápis do db:

$db->uzivatele->execute("INSERT INTO uzivatele (login, pass, email, prijmeni, jmeno, prava) VALUES (".$data['login'].", ".$pass_md5.", ".$data['email'].", ".$prijmeni.", ".$jmeno.", '1')");
pcmanik
Profil
gooner47:
Execute sa používa v prípade prepared statement. Ale ty používaš klasické query - na to slúži metóda query. Dáta zrejme neošetruješ, čo je zle. Na to slúži táto metóda.
Najlepšie ale bude ak začneš využívať už spomínané prepared statements. Viac sa dočítaš v dokumentácii.
A čísla neukladaj ako reťazce - nedávaj ich do úvodzoviek.
gooner47
Profil *
$db->uzivatele->query("INSERT INTO uzivatele (login, pass, email, prijmeni, jmeno, prava) VALUES (".$data['login'].", ".$pass_md5.", ".$data['email'].", ".$prijmeni.", ".$jmeno.", '1')");

Když to takhle použiji vypíše se chyba:

Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\Bootstrap\registrace.php on line 105
aDAm
Profil
Tak zřejmě:

$db->uzivatele

není objekt. Máš to nějak inicializované?
DJ Miky
Profil
V $db máš objekt NotORM, ne PDO. Přečti si, jak se NotORM používá.
ts_istudio
Profil
gooner47:
Brzo narazíš na další chybu - řetězce v tom dotazu nemáš obalené do apostrofů.
gooner47
Profil *
nemám to nijak inicializované.

ale když to toho použiju notORM tak vypíše chybu:

Fatal error: Call to protected method NotORM_Result::query() from context '' in C:\xampp\htdocs\Bootstrap\registrace.php on line 105
DJ Miky
Profil
NotORM metodu query nepoužívá. Přečti si, jak se NotORM používá. Jinak bys musel volat na objekt PDO, který máš v jiné proměnné.
gooner47
Profil *
Pořád nevím jak =( poradíte mi někdo?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: