Προς το περιεχόμενο

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

Δημοσ.

Καλησπέρα!

Προσπαθώ να δω στον σέρβερ μου αν έχει κάποια δεδομένα ένας συγκεκριμένος πίνακας και αν δεν έχει να κάνει κάτι.
 

if($dbh->query($sql)->fetch() == 0)

Ο παραπάνω κώδικας βγάζει error :

 PHP Fatal error:  Call to a member function fetch() on a non-object in C:\xampp\htdocs\ratingsPost.php on line 18

 

του το ζητάω λάθος;

Ευχαριστώ.

Δημοσ.

Δεν γίνεται να παραθέσεις περισσότερο κώδικα; Πως φτιάχνεις το PDO κτλ

 

(πρόσεχε να σβήσεις τίποτα κωδικούς)

 

Edit: Δες και εδώ.. http://php.net/manual/en/pdostatement.fetch.php

$sql="SELECT * FROM ratings where businessID ='$BusinessID' AND deviceID='$DeviceID' )";
//if($dbh->query($sql)->fetch() == 0)
if(($sth=$dbh->query($sql)) == 0) $sth->fetch();
{
$sql1="INSERT INTO ratings VALUES(NULL,'$Rating','$BusinessID','$DeviceID')";
}
$dbh->query($sql1);

Περνάω με Post αυτές τις τιμές αν και μόνο αν το device που θα τις στείλει δεν έχει ξαναστείλει για το ίδιο BusinessID κάτι άλλο. Κολλάει στην αρχή των 2 If. Ο πίνακας ratings είναι κενός αυτήν την στιγμή.

Δημοσ.

Δοκίμασε αυτόν τον κώδικα:

$sql="SELECT * FROM ratings where businessID ='$BusinessID' AND deviceID='$DeviceID' )";
//if($dbh->query($sql)->fetch() == 0)
if(($sth=$dbh->query($sql)) == 0)
{
$sth->fetch();
$sql1="INSERT INTO ratings VALUES(NULL,'$Rating','$BusinessID','$DeviceID')";
}
$dbh->query($sql1);
Δημοσ.

Καλείς την fetch σε κάτι που δεν είναι object.

 

Αυτό πάνω στο οποίο καλείς την fetch είναι το αποτέλεσμα της query.

 

Πας στο manual και διαβάζεις να δεις πότε η query δεν επιστρέφει object.

 

Η απάντηση είναι ότι επιστρέφει false όταν συμβεί σφάλμα.

 

Βρες το σφάλμα και φτιάξτο.

  • Like 1
Δημοσ.

Το διόρθωσα :

$check=$dbh->query("SELECT * FROM ratings where businessID ='$BusinessID' AND deviceID='$DeviceID'")->fetch();

if($check[0] == 0)
{
$sql1="INSERT INTO ratings VALUES(NULL,'$Rating','$BusinessID','$DeviceID')";
}

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

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

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

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

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

Σύνδεση

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

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