Autor | Zpráva | ||
---|---|---|---|
Milan1236000 Profil |
Zdravím,
jsem začátečník. Mohl by mi někdo, prosím, vysvětlit rozdíl mezi těmito třemi příkazy? $pripojeni = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$pripojeni) die('Could not connect: ' . mysql_error()); $pripojeni = new mysqli('localhost', 'mysql_user', 'mysql_password', 'my_db'); if ($pripojeni->connect_errno) die('Connect Error: ' . $mysqli->connect_errno); $pripojeni = new mysqli("localhost", "uzivatel", "heslo", "databaze"); if ($pripojeni->connect_errno > 0) die("Není databáze!"); edit: Jaký je ještě rozdíl mezi: $pripojeni->close(); mysql_close($id_spojeni); |
||
smiesek Profil |
#2 · Zasláno: 2. 7. 2015, 03:04:19
ty příkazy se liší ve způsobu programování: procedurální a objektové.
Doporučovala bych se na Vašem místě rozhodnout, jakým způsobem budete chtít programovat, abyste si zbytečně nemotal hlavu dvěma metodami nebo jak to správně nazval :) |
||
kzk_cz Profil * |
#3 · Zasláno: 2. 7. 2015, 09:16:46
Doporučoval bych se rozhodnout pro objektové programování a použil nějakou připravenou DB vrstvu. :) Třeba něco krásného jako tohle (http://doc.nette.org/cs/2.3/database).
|
||
Alphard Profil |
To co píší kolegové výše může být trochu zavádějící, i s knihovnou mysqli jde pracovat procedurálně. Nejzásadnější rozdíl je, že mysql a mysqli jsou odlišné knihovny (a nejsou jediné). Vzhledem k tomu, že mysql je deprecated, rozhodně ji nelze doporučit.
|
||
Milan1236000 Profil |
#5 · Zasláno: 2. 7. 2015, 11:49:04
Díky všem za odpovědi a za vysvětlení. Rozhodně si tedy vybírám to objektové.
|
||
Milan1236000 Profil |
#6 · Zasláno: 2. 7. 2015, 17:14:04
Ještě mám jeden problém s připojením se k databázi.
$pripojeni = new mysqli("IP_adresa_serveru:port", "moje_jmeno", "moje_heslo", "moje_databaze"); if ($pripojeni->connect_errno > 0) die("Při připojení došlo k chybě: " . $pripojeni->connect_error . ", číslo chyby: " . $pripojeni->connect_errno); $pripojeni->close(); Zobrazuje se mi chyba: Unknown MySQL server host 'IP_adresa:port' (20), 2005 IP_adresa:port by se mělo psát u mysql_connect .
U new mysqli by to mělo být ve tvaru:
$pripojeni = new mysqli("IP_adresa_serveru", "moje_jmeno", "moje_heslo", "moje_databaze", port); Can't connect to MySQL server on 'IP_adresa_serveru' (101), 2003 Jak se tam připojit? A technické dotazy. Je tohle: $pripojeni = new mysqli("IP_adresa_serveru:port", "moje_jmeno", "moje_heslo", "moje_databaze"); if ($pripojeni->connect_errno > 0) die("Při připojení došlo k chybě: " . $pripojeni->connect_error . ", číslo chyby: " . $pripojeni->connect_errno); $pripojeni = new mysqli("IP_adresa_serveru:port", "moje_jmeno", "moje_heslo", "moje_databaze") or die("Při připojení došlo k chybě: " . $pripojeni->connect_error . ", číslo chyby: " . $pripojeni->connect_errno); Jaký rozdíl mezi f ($pripojeni->connect_errno > 0) f ($pripojeni->connect_errno) Je jedno, za se $pripojeni = new mysqli("localhost", "uzivatel", "heslo", "databaze"); $pripojeni = new mysqli('localhost', 'uzivatel', 'heslo', 'databaze'); Díky. |
||
Fisir Profil |
#7 · Zasláno: 2. 7. 2015, 17:26:07
Reaguji na Milana1236000:
„Jak se tam připojit?“ Zkrátka máš špatně adresu MySQL serveru, ještě jednou ji zkontroluj a případně to prokonzultuj s webhostingem. „Zkoušel jsem i ten port dát také do uvozovek“ Ano, port musí být zapsán jako řetězec. > Jaký rozdíl mezi f ($pripojeni->connect_errno > 0) f ($pripojeni->connect_errno) Žádný. První případ zkontroluje, zda je connect_errno větší než nula. Druhý přetypuje connect_errno na boolean , v případě, že je connect_errno = 0 to bude false (podmínka neprojde), jinak true (podmínka projde). connect_errno může nabývat pouze hodnot větších nebo rovných nule, takže je funkčnost identická.
> Je jedno, za se $pripojeni = new mysqli("localhost", "uzivatel", "heslo", "databaze"); $pripojeni = new mysqli('localhost', 'uzivatel', 'heslo', 'databaze'); Ano. (Jak to s těmi apostrofy a uvozovkami je jsem vysvětlil tady.) |
||
Milan1236000 Profil |
#8 · Zasláno: 2. 7. 2015, 18:02:36
Fisir:
Díky za vysvětlení. Připojení se mi už podařilo. Zapomněl jsem, že když je databáze na tom samém serveru, píše se místo "IP_adresy_serveru" pouze "localhost" .
|
||
Časová prodleva: 9 let
|
0