Visualizzazione risultati 1 fino 10 di 10

Discussione: Errore con le statement sql

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito Errore con le statement sql

    Buonasera.
    Sono ore che ci provo e riprovo ma ricevo continuamente questo errore:

    Fatal error: Call to a member function prepare() on a non-object in
    Il codice in uso è:

    Codice PHP:
    function CheckBruteforce($uid){ global $mysqli;
    $mv = time()-(2*60*60); // 2h
    $max = 5;

    if(
    $stmt = $mysqli->prepare("SELECT ic5 FROM ica_slots_me WHERE id = ? AND ic5 > '$mv'")){
    $stmt->bin_param('i', $uid);
    $stmt->execute();
    $stmt->store_result();

    if(
    $stmt->num_rows > $max){
    return
    true;
    }else{
    return
    false;
    }
    }
    }
    A me sembra corretto ma forse la stanchezza mi farà dire eresie... mi aiutate?
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    Buhhh la scrittura è corretta ma dall'errore che mi dava anche ieri a me, potrei ipotizzare che non gli piace la select, quindi mi viene da pensare sei sicuro che riesca a fare questa comparazione?

    ic5 > '$mv'

    Come ti ritorna $mv e come è definito il campo ic5?Mi viene da pensare questo...Ciao

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    ic5 è un VARCHAR (20).

    Se stampo la variabile $mv e la inserisco il valore al posto di essa lo script funziona correttamente.

    Ho provato anche in questi metodi:

    Codice PHP:
    if($stmt = $mysqli->prepare("SELECT ic5 FROM ica_slots_me WHERE id = ? AND ic5 > '".$mv."'")){

    # 2

    if($stmt = $mysqli->prepare("SELECT ic5 FROM ica_slots_me WHERE id = ? AND ic5 > '{$mv}'")){
    Ma il risultato è lo stesso. Ho pensato così di cambiare il nome alla variabile ma il problema rimane. Ho anche controllato che essa non sia già definita... cioè... non so più cosa provare!
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Prova così

    Codice PHP:
    if($stmt = $mysqli->prepare("SELECT ic5 FROM ica_slots_me WHERE id = ? AND ic5 > '" . $mv . "'")){

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Scusa vplaza cosa cambia tra il mio codice ed il tuo? Qualche spazio?
    Comunque nella disperazione totale ho provato e l'errore persiste... non so più che fare...

    Ho lanciato anche la query (stampata) ed in phpMyAdmin funziona!
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Puoi riportare la struttura della tabella, in modo da poter riprodurre il problema?
    Comunque a giudicare dal messaggio di errore parrebbe che $mysqli non sia un oggetto, verifica che la connessione vada a buon fine e che la variabile venga popolata correttamente.
    Ultima modifica di karl94 : 29-06-2015 alle ore 02.20.09

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Scusa vplaza cosa cambia tra il mio codice ed il tuo? Qualche spazio?
    Perdonami hai ragione. Non avevo visto bene.

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Questo è il dump della tabella. Ho inserito solo 3 record su 68:

    Codice PHP:
    CREATE TABLE IF NOT EXISTS `ica_slots` (
    `
    id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `
    ic5` varchar(20) NOT NULL,
    PRIMARY KEY (`id`)
    )
    ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

    INSERT INTO `ica_slots` (`id`, `ic5`) VALUES
    (1, '1435599242'),
    (
    2, '1435596321'),
    (
    3, '1435599863');
    $mysqli è un oggetto e funziona senza problemi :/
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Guest

    Predefinito

    Miki?

    Select from ica_slots_me e la tabella è CREATE TABLE IF NOT EXISTS `ica_slots` ;) un _me di troppo....Ciao

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Hai ragione!
    Il problema è quello. Il problema e che esiste anche una tabella che finisce con quel suffisso. Mi chiedo come phpMyAdmin possa eseguire la query nonostante quella tabella sia in un altro database :/

    Comunque grazie... finalmente ho risolto!!!
    Che errore stupido! Scusate e grazie a tutti!
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •