Autor | Zpráva | ||
---|---|---|---|
Pinqui Profil |
#1 · Zasláno: 29. 7. 2009, 18:10:00 · Upravil/a: Pinqui
Dobrý den došel jsem k problému s připojením do databáze v php4, kde mi nefunguje script vytvořen pro php5 a potřeboval bych poradit jak to napsat pro php 4 dočasně než hosting přejde do php5 děkuji zde je kód:
try { $db = new mysqli('localhost', 'user', 'pass', 'table'); $db->set_charset('utf8'); if(mysqli_connect_errno()) { throw new Exception('Vnitří chyba: Nepodařilo se spojit s databází.'); } } catch (Exception $e){ echo $e->getMessage(); } Mockrát vám děkuji |
||
Majkl578 Profil |
#2 · Zasláno: 29. 7. 2009, 19:12:44
pokud vim, mysqli je v php az od verze php5, tudiz prepsat na mysql. taktez bloky try a catch asi na php4 nepujdou.
spis nez workaround bych zmenil hosting, php4 uz je opravdu vykopavka. |
||
Pinqui Profil |
#3 · Zasláno: 29. 7. 2009, 19:16:49
Majkl578
Oni php4 už odstraňují a dávají php5 a dávají to na nové mašiny, ale potřebuji tak klidně v mysql udělat třídu, aby se mi to připojovalo pomocí $db->query(dotaz) abych na těch prá dní nemusel měnit všechny připojení k databázím. prosím pomozte, jak to napsat, aby to šlo v php4 |
||
Majkl578 Profil |
#4 · Zasláno: 29. 7. 2009, 20:34:25 · Upravil/a: Majkl578
ten kod nahrad timto:
class Database { var $connection; function Database() { $this->connection = mysqli_connect('localhost', 'user', 'pass', 'table'); if (!$this->connection) { trigger_error('DB connection not successful', E_USER_ERROR); } } function query($sql) { $result = mysqli_query($sql); if (!$result) { trigger_error('SQL ERROR ' . mysql_errno() . ': ' . mysql_error(), E_USER_ERROR); } return $result; } } $db = new Database; je pravdepodobne, ze budes potrebovat i nahrady za jine funkce, napr. mysqli::fetch_assoc, to muzes udelat pridanim prislusne nahrady mysqli metody do teto tridy, napr: function fetch_assoc($res) { return mysqli_fetch_assoc($res); } edit: ted jsem se dival do dokumentace, mysqli jako takove je v php jiz od php4.1, tudiz by melo stacit sesmolit si tridu (vice dokumentace: http://cz2.php.net/manual/en/class.mysqli.php) |
||
Pinqui Profil |
#5 · Zasláno: 29. 7. 2009, 20:41:48 · Upravil/a: Pinqui
Majkl578
Takže ta třída, kterou jsi napsal by měla být ok?? zkusím. //edit Fatal error: SQL ERROR 1046: No database selected in /data Mno píše mit o chybu...takto přistupuji k db $data = $db->query("select id, number from category"); if($data->num_rows != 0){ while($sel = $data->fetch_assoc()){... |
||
Majkl578 Profil |
#6 · Zasláno: 29. 7. 2009, 20:58:52
omlouvam se,nekoukl jsem se do dokumentace, do mysqli_query se musi predat instance objektu, tudiz:
$result = mysqli_query($sql); by melo byt: $result = mysqli_query($this->connection, $sql); |
||
Pinqui Profil |
#7 · Zasláno: 29. 7. 2009, 21:53:22
Mno přepsal jsem mysqli na mysql, ale nějak mi to nejde a když dám mysql tak to hlásí:
Fatal error: Call to undefined function: mysqli_connect() in /dat |
||
Časová prodleva: 15 let
|
0