Autor Zpráva
peta
Profil
Mam udelanou vlastni class na sql, ktera v __construct vytvori pripojeni a ulozi do promenne $sql->conn. Tuto class mam includovanou do dalsich souboru, viz ukazka. Problem je, ze se mi nejak ztrati z promenne ten connect a nasledne mi pak sql dotazy hlasi errory.
Co delam spatne nebo, jak bych to mel zapsat? Predbezne me jeste napada, zda bych tu class nemel radeji vytvaret az v souboru, do ktereho to cele includuji.

--- clanky_search.php ---
<?php
var_dump($sql->conn);  // tady to vypise resource(8, Unknown), coz je spatne, tady by melo byt totez jako v druhem priklade
?>

--- clanky.php ---
<?php
include_once 'sql_inc.php'; // provede $sql = new classSql; + __construct provede connect na db
var_dump($sql->conn);  // tady to vypise resource(8, mysql link), coz je dobre, tady to funguje
include_once('clanky_search.php');
?>

--- sql_inc.php --- (je tam neco takoveho...)
<?php
class classSql
{
public $conn = null;
public $db   = null;

    function __construct()
    {
    $this->connect();
    $this->query("SET NAMES utf8");
    }

    function connect()
    {
    $host = HOST;
    $user = USER;
    $psw  = PASS;
    $db   = NAME;
    $this->conn = mysql_connect($host,$user,$psw)  or die ('Chyba mysql_connect. ' . mysql_error());
    $this->db   = mysql_select_db($db,$this->conn) or die ('Chyba mysql_select_db. ' . mysql_error($this->conn));
    //echo "$host,$user,$psw,$db"; die();
    var_dump($this->conn);
    }

    public function disconnect()
    {
    if (isset($this->conn))
        {
//        mysql_close($this->conn);
        @mysql_close();
        }
    }  

    public function query($query)
    {
var_dump($this->conn);
    $res = mysql_query($query,$this->conn) or die('Chyba mysql_query. ' . mysql_error($this->conn));
//    $res = mysql_query($query,$this->conn);
    //var_dump($res);
    return $res;
    }
}
$sql = new classSql;
?>



Uz jsem chybu nasel. Vkladam casti jineho programu a oni tam tez pouzivaji promennou $sql, tim prepisovali nejspis moji.

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:

0