Προς το περιεχόμενο
  • 0
Συνδεθείτε  
slevinkelevra

fetch και περασμα μεταβλητων με PDO

Ερώτηση

Καλησπερες

 

Χρησιμοποιω pdo μαζι με postgresql. Κανω ενα select και τα αποτελεσματα θελω να τα περασω σε απλες μεταβλητες php. Δειτε τον παρακατω κωδικα

$stmt = $dbh->prepare("SELECT * FROM pinakasMou WHERE kati = :un");
$stmt->bindParam(':un', $un, PDO::PARAM_STR);
$um=$miaMetabliti;
$stmt->execute();
while($row = $stmt->fetch()) {  
$a = $row['a'];
$b = $row['b'];  
$c = $row['c'];
}

Προσπαθω να περασω τις τιμες που ερχονται απο το select σε απλες php μεταβλητες. Αυτο δεν γινεται και δεν μπορω να καταλαβω και γιατι.

 

Για παραδειγμα τις περναω στις μεταβλητες και μετα προσπαθω να τυπωσω

echo $a."</br>";
echo $row['a]."</br>";
echo $b."</br>";
echo $c."</br>";

Ενω το query εκτελειται κανονικα, τιποτα απο τα παραπανω δεν τυπωνει.

Το fetch mode το εχω ορισει ως fecth_assoc.

 

Καμια ιδεα?

 

Ευχαριστω πολυ.

 

 

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

1 απάντηση σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 0

Καλησπερες

 

Χρησιμοποιω pdo μαζι με postgresql. Κανω ενα select και τα αποτελεσματα θελω να τα περασω σε απλες μεταβλητες php. Δειτε τον παρακατω κωδικα

$stmt = $dbh->prepare("SELECT * FROM pinakasMou WHERE kati = :un");
$stmt->bindParam(':un', $un, PDO::PARAM_STR);
$um=$miaMetabliti;
$stmt->execute();
while($row = $stmt->fetch()) {  
$a = $row['a'];
$b = $row['b'];  
$c = $row['c'];
}

Προσπαθω να περασω τις τιμες που ερχονται απο το select σε απλες php μεταβλητες. Αυτο δεν γινεται και δεν μπορω να καταλαβω και γιατι.

 

Για παραδειγμα τις περναω στις μεταβλητες και μετα προσπαθω να τυπωσω

echo $a."</br>";
echo $row['a]."</br>";
echo $b."</br>";
echo $c."</br>";

Ενω το query εκτελειται κανονικα, τιποτα απο τα παραπανω δεν τυπωνει.

Το fetch mode το εχω ορισει ως fecth_assoc.

 

Καμια ιδεα?

 

Ευχαριστω πολυ.

Φαντάζομαι πως περιμένεις 1 αποτέλεσμα μόνο, αλλιώς τα $abc γίνονται overwrite μεσα στην while. Επίσης κάνε απλά extract() τον πίνακα row αντί να το αναθέτεις σε μεταβλητές όπως τώρα (τα keys θα γίνουν οι μεταβλητές). 

Πριν κάνεις fetch πρέπει να ελένξεις το αποτέλεσμα του execute, καθώς μπορεί κάλλιστα να μην εκτελείται το query.

 

Όρισε την μεταβλητή σου πριν το binding ή ακόμα καλύτερα δώσε την στο execute() σε array μορφή. Επειδή είναι πολλά που μπορεί να συμβάινουν πρώτα βάλε το εξής:

try {
// εδώ κάνε το prepare & execute
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
}

Ελένξε αν παίρνεις κανένα error. Στη συνέχεια κράτα σε μεταβλητή το αποτέλεσμα του execute

($result = $stmt->execute(πίνακας με τις παραμέτρους) )

και δες αν σου επιστρέφει TRUE/FALSE.

Αν σου επιστρέφει TRUE βγάλε το fetch έξω απο την while, για δοκιμή και κάνε var_dump($row) για να δεις τι παίζει. Δεν ξέρω αν αυτός είναι ο κωδικάς σου ή για συντομία το έγραψες έτσι πάντως είναι πολλά τα λάθη που μπορούν να συμβούν και δεν τα εξετάζεις πουθενά.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε έναν λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι εύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
Συνδεθείτε  
×
×
  • Δημιουργία νέου...

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.