Autor Zpráva
smiesek
Profil
nechci kvůli tomuto mému dotazu zakládat nové téma, kdy všude doporučujete používání MySQLi, ale nikde se nemohu pořádně dočíst, co to obnáší.

Sama používám pouze MySQL a co jsem se zkoušela dohledat, pochopila jsem správně, že v takovém případě, při úpravě používání stačí všude tam, kde používám "slovo" MySQL nahradit za MySQLi a tím bude podmínka přechodu na používání MySQLi splněna? Nebo to je ještě otázka něčeho jiného?

Když nyní tedy ještě necháme strannou OOP, tak jak jej používat při procedurálním programování.
Protože zase, když už jsem u někoho viděla používat MySQLi, už to automaticky pasoval do OOP.

Děkuju za objasnění.
Alphard
Profil
smiesek:
kdy všude doporučujete používání MySQLi, ale nikde se nemohu pořádně dočíst, co to obnáší
Nejčastější potíže s PHP (FAQ) » Co to je?

Příklad použití viz např. www.fisir.tk/itblog/mysql_. Část MySQLi je již psaná objektově, což nevadí, všude kde jsou použity objekty lze pracovat i bez nich. V dokumentaci jsou uvedeny vždy obě verze
mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
i
mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
Asi největší rozdíl z pohledu návrhu aplikace je, že mysqli knihovna vyžaduje explicitní předání reference na připojení k databázi (mysql knihovna si uměla interně zjistit poslední otevřené spojení).

Osobně ale práci „jen s MySQLi“ (nebo jinými nativními knihovnami v PHP) moc nefandím a hned bych použil dibi. Přechod na novou databázovou vrstvu, ať již na MySQLi, PDO, dibi, ... bych doporučoval spojit s větším krokem vpřed a začít třeba i důsledně escapovat, myslet na bezpečnost a chyby ošetřovat chytřeji než tím hloupým or die.
smiesek
Profil
Alphard:
ano na tu stránku fisir jsem taky narazila, ale popisuje to pouze rozdíly a už nikoliv to, jakým způsobem to tedy používat, což jsem nepochopila tedy ani nyní z výkladu příspěvku na diskusním foru.
Týká se to tedy pouze úpravy částí, kde se připojuju k databázi a následně vybírám data z databáze, tedy začínající mysql_connect a končící mysql_fetch... / popř. mysql_num...
lionel messi
Profil
smiesek:
Když nyní tedy ještě necháme strannou OOP, tak jak jej používat při procedurálním programování.
Protože zase, když už jsem u někoho viděla používat MySQLi, už to automaticky pasoval do OOP.

Takmer rovnako ako MySQL. Jediný rozdiel podstatný rozdiel je, že všetky funkcie majú prefix mysqli a ich drvivá väčšina má navyše jeden povinný parameter (spravidla odkaz na spojenie).

$link = mysqli_connect("server", "jmeno", "heslo", "databaze"); //pripojíme sa, namiesto mysql_select_db dáme meno db do 4. parametru (povinného)
$sql = "SELECT * FROM tabulka WHERE sloupecek = '". mysqli_real_escape_string($link, $_POST['uzivatelsky_vstup'])  ."'"; //zostavíme dotaz, prípadne escapujeme užívateľský vstup
$query = mysqli_query($link, $sql); //vykonáme dotaz

while ($row = mysqli_fetch_assoc($query)) { //natiahneme výsledky do asociatívneho poľa
  echo $row['sloupecek']; //klasicky vypíšeme dáta
}

Je to z praktického komentovaného príkladu aspoň o trošku zrejmejšie?
Fisir
Profil
Reaguji na smieska:
na tu stránku fisir jsem taky narazila, ale popisuje to pouze rozdíly a už nikoliv to, jakým způsobem to tedy používat
Část Rychlý začátek s MySQLi to nevysvětlila dostatečně? Uvítám jakékoliv návrhy na vylepšení či doplnění toho, co začátečníkům není jasné (ale spíše pod článek do komentářů).
smiesek
Profil
lionel messi:
ano, děkuju nyní mi to je zřejmé

Fisir:
už OK, mě to vždy lépe pomůže na souvislý příklad, než po částech, tím chci říci, že co nepochpím já, berou jiní jako samozřejmost, proto není nutné se znepokojovat

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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