Wpis z mikrobloga

Mirecznik jak zrobić w PDO takie zapytanie

$query1 = 'SELECT ......';

while($row = $f->fetch()){

$query2 = 'SELECT ......';

while($row = $f->fetch()){}

}

Bo tak nie działa gdyż mi wywala 1 wynik z tablicy

#php #pdo
  • 24
@patrolez: Ale nie mogę tak zrobić Bo Tablicę wcześniej muszę ostro zmodyfikować

Chcę jakoś utworzyć Identyfikator QUERY do Fetch jak to w zwykłym mysql

while($row = $f->fetch($query1)) // tyle ze nie wiem jak to obejść bo w PDO tak nie ma
@max1m0-: $danezmiany = $this->PDOdb->query("SELECT * FROM tabela");

while ($row = $this->PDO_db->fetch()) {

$dane_rachunki = $this->PDO_db->query("SELECT * FROM tabela WHERE id = $row[DSN_ID]");

while ($row_rachunki = $this->PDO_db->fetch()) {

$row['rachunki'][] = $row_rachunki; //

///

/// RYPNY KOD OD MODYFIKACJI

///

}

$sync[] = $row;

}
@max1m0-: Muszę to tak zrobić bo ale nie wiem jak obejść bo 2 fetch nachodzą się na siebie

Edit: Oczywiście selecty są duużo dłuższe i już z wieloma JOIN'ami
@slaszka:

$stmt1 = $pdo->prepare('SELECT ....');

$stmt2 = $pdo->prepare('SELECT cos_innego where id = :id';)

$stmt1->execute();

while ($row = $stmt1->fetch()) {

$stmt2->execute(array (':id' => $row['id']));

}

.. no coś w ten deseń...
@max1m0-: Wróciłem do Punktu wyjścia. Zrobiłem przez prepare ale znów mam 1 row z pierwszego zapytania

mam

Array

(

[0] => Array

(

[ID] => 1

[rachunki] => Array

(

[0] => Array

(

[id] => 11000

[dana] => test

)

[1] => Array

(

[DSL_DSRID] => 11000

[dana] => test2

)

)

)

)

Powinno być

Array

(

[0] => Array

(

[ID] => 1

[rachunki] => Array

(

[0]
@slaszka: To nie jest istotne, czy przez PDO::prepare, czy przez PDO::query. Obie metody zwracają wartość. Tą wartość musisz przechować w taki sposób, żeby jej nie nadpisywać kolejnym zapytaniem.

W ogóle odpuść sobie wrappowanie PDO, bo to bez sensu. PDO samo w sobie jest wrapperem. Jeżeli masz potrzebę dodania jakichś funkcjonalności, których PDO nie ma, to zawsze możesz zrobić MyPDO extend PDO