Din mysql_connect in pdo
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
cadou
- Mesaje:328
Din mysql_connect in pdo
Zilele trecute m-am cam uitat asa pe PDO dar nu prea am inteles cum sa transform din mysql in pdo. am urmatoarea secventa de cod:
Cod: Selectaţi tot
$reclamaRV = "SELECT * FROM `anunturi` WHERE `platit` = '1' ORDER BY RAND() LIMIT 4";
$rezultatRV = mysql_query($reclamaRV);
if (mysql_num_rows($rezultatRV) < 2)
{
// afiseaza ceva
}
else
while($randRV = mysql_fetch_array($rezultatRV))
{
// afiseaza altceva
}
Iar in pdo am incercat asa:
Cod: Selectaţi tot
$reclamaRV = $dbh->prepare("SELECT * FROM `anunturi` WHERE `platit` = '1' ORDER BY RAND() LIMIT 4");
$rezultatRV = $reclamaRV->fetch(PDO::FETCH_ASSOC);
$rezultatRVrand = $reclamaRV->fetch(PDO::FETCH_NUM);
if ($rezultatreclamaverticalarand > 1)
{
// afiseaza ceva
}
else
while($rand = $rezultatreclamaverticala)
{
// afiseaza altceva
echo $rand['nume'];
}
Dar nu afiseaza nimic In cazul folosit la PDO, in cazul mysql afiseaza corect
MarPlo
Mesaje:4343
Salut
Daca folosesti prepare() trebuie aplicat si execute() la obiectul creat cu prepare ($reclamaRV), dupa care se aplica fetch() la acelasi obiect in instructiunea while() de parcurgere a datelor (in caz de Select).
Vezi atent lectia
PHP PDO - prepare si execute si explicatiile din ea; exemplele date acolo functioneaza.
cadou
Mesaje:328
Sper ca am inteles, uite cum am realizat codul urmator, este ok scris ? eu cam asa am inteles din ce am citit pe acolo
Cod: Selectaţi tot
$RV = $dbh->prepare("SELECT * FROM `anunturi` WHERE `platit` = '1' LIMIT 3");
$RV->execute();
if($RV->fetch(PDO::FETCH_NUM) == 0)
{
// daca nu sunt rezultate afiseaza ceva
}
else if($RV->fetch(PDO::FETCH_NUM) == 1)
{
// daca e un rezultat afiseaza ceva 1
}
else if($RV->fetch(PDO::FETCH_NUM) == 2)
{
// daca sunt doua rezultate afiseaza ceva 2
}
MarPlo
Mesaje:4343
Daca nu se folosesc inlocuitori in comanda SQL (? sau :nume) nu are rost sa aplici prepare() si execute() fiindca datele nu sunt filtrate in sirul SQL ci in array-ul cu valorile pt. inlocuitori; poti folosi query().
Functia fetch() nu returneaza numarul de randuri, ci un array cu coloanele din randul respectiv, si se adauga in while() pt. parcurgerea randurilor.
- Vezi si lectia:
PHP PDO - Select, fetch.
- Iar daca ce mai faci e bine sau nu, eu nu stiu; tu stii dupa rezultatul obtinut.