Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Warning: mysql_real_escape_string(): 21 is not a valid MySQL-Link resource in C:\...

    Non capisco il perchè di quest'errore, ho cercato un sacco in internet ma non ho trovato la soluzione. Faccio una query al db che effettua regolarmente ma mi stampa questa stringa ovunque...

  2. #2
    in che contesto si verifica?

    l'errore completo?

  3. #3

    Re: Warning: mysql_real_escape_string(): 21 is not a valid MySQL-Link resource in C:\...

    Originariamente inviato da Roland Deschain
    Non capisco il perchè di quest'errore, ho cercato un sacco in internet ma non ho trovato la soluzione. Faccio una query al db che effettua regolarmente ma mi stampa questa stringa ovunque...
    Prima di usare mysql_real_escape_string devi effettuare la connessione al server mysql.

    Siccome l'escape e' reale cioe' coerente con la configurazione di mysql serve appunto di essere connesso per sapere cosa e come eseguire l'escape della stringa.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Ho cominciato da pochi giorni a usare wordpress per muovere i primi passi con siti web.
    Qualcosina avevo già fatto ma cose scritte completamente a mano...

    L'errore completo è questo:

    "Warning: mysql_real_escape_string(): 21 is not a valid MySQL-Link resource in C:\Users\xxx\xampp\htdocs\wordpress\wp-includes\wp-db.php on line 789"

    e poi uguale ma "on line 1102"


    Il codice è questo:

    <?php
    $con = mysql_connect("localhost","xxx","xxx");
    if (!$con){
    die('Could not connect: ' . mysql_error());
    }

    // SELEZIONA IL DATABASE
    mysql_select_db(""mydb, $con);

    $risultatoquery = mysql_query("select * from prodotti") or die(mysql_error());;

    echo "<TABLE>";
    echo "<TR>";
    echo "<TD>Codice</TD>";
    echo "<TD>Nome</TD>";
    echo "<TD>Prezzo</TD>";
    echo "<TD>Descrizione</TD>";
    echo "</TR>";

    while ($row = mysql_fetch_row($risultatoquery)) {
    echo "<TR>";
    echo "<TD>$row[0]</TD>";
    echo "<TD>$row[1]</TD>";
    echo "<TD>$row[2]</TD>";
    echo "<TD>$row[3]</TD>";
    echo "</TR>";
    }
    echo "</TABLE>";

    mysql_close($con);
    ?>

  5. #5
    forse e' perche' chiudi la connessione prima di utilizzare la funzione di escape.

    In pratica sembrerebbe che apri e chiudi la connessione ogni volta. Bene, la funzione deve essere messa dopo la connessione, prima della query, ed ovviamente prima di mysql_close.

    mysql_real_escape_string() esegue una interrogazione al db, quindi il db deve risultare connesso.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Il fatto è che io non so neanche cosa sia mysql_real_escape_string()...
    Non l'ho usato io...

    Edit: Guarda ho trovato in giro un sito con il mio stesso problema, e così ne trovi anche altri...
    xyz

  7. #7
    Ciao,

    è lampante che il problema riguarda PHP, visto che l'errore è restituito da funzioni di PHP ed hai postato una tonnellata di codice PHP.

    Sposto nella sezione più appropriata, più attenzione in futuro

    PS: evitiamo di postare link a siti esterni ASSOLUTAMENTE inutili
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Chiedo sorry!
    Cmq di codice php ho usato proprio le funzioni base quindi se c'è un errore dovrebbere saltare fuori subito, io non credo centri il php... secondo me è qualche tipo di errore dovuto a incompatibilità di versioni tra wp e mysql o cose simili...

  9. #9
    mysq_real_escape_string() è una funzione php. A rigor di logica quel.....non sò come definirlo.... di wordpress se ne frega della versione di mysql che hai sotto. Non è lui che recupera i dati o li manipola, è php che esegue le operazioni ed è php che si interfaccia col database.

    http://php.net/manual/en/function.my...ape-string.php

    Quello è un warning di PHP che indica una mancata connessione al database (vedi php.net). La soluzione te l'ha data piero.mac.

    P.s: è pure una funzione sconsigliata visto che abreve cadrà in disuso/sarà rimossa.
    Fare o non fare....non c'è provare!

  10. #10
    non è la funzione ad essere sconsigliata, anzi, di per se è meglio usare questa piuttosto che mysql_escape_string in quanto tiene in considerazione anche la codifica adottata nella comunicazione tra client e server (mysql intendo)

    è l'estensione mysql che è deprecata ed è meglio passare a MySQLI, che sta per MySQL Improved, oppure a PDO_MySQL, che è ancora meglio secondo me
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.