Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente bannato
    Registrato dal
    Sep 2011
    Messaggi
    112

    Controllare se la riga esiste gia..

    $query="INSERT INTO fbdata (dato1,testo,img) VALUES ('$dato1','$testo','$newimg')"; mysqli_query($db,$query);

    Vorrei sapere come posso fare per fare un controllo prima che mi inserisce questi dati?

    Cioè io vorrei che il codice non inserisca niente se esiste già una riga, con gli stessi dati che si sta apprestando a inserire..


    Come potrei fare?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prima di fare la INSERT fai una SELECT mettendo nel WHERE i dati che vorresti inserire, se ti restituisce una riga vuol dire che esiste già e non fai niente, altrimenti esegui l'INSERT.

  3. #3

  4. #4

    Re: Controllare se la riga esiste gia..

    Originariamente inviato da paoluccio.delfi
    $query="INSERT INTO fbdata (dato1,testo,img) VALUES ('$dato1','$testo','$newimg')"; mysqli_query($db,$query);
    ovviamente spero che ti sia scappata una "i" in mysql_query

  5. #5
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480

    Re: Re: Controllare se la riga esiste gia..

    Originariamente inviato da mangusta91
    ovviamente spero che ti sia scappata una "i" in mysql_query
    Un paio di consigli:

    - evita di usare "ovviamente", puoi risparmiarti una doppia figura di cacca
    - google è tuo amico: http://www.google.it/?q=mysqli_query

  6. #6


    onestamente non ne conoscevo l'esistenza.. bhe sbagliando si impara si dice..

    caro garakkio, anche se google è mio amico non ho ben capito la differenza con mysql_query... mi illumini? thanks

  7. #7
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Ma perché non ti leggi il manuale?

  8. #8
    viva la cordialità! Lo sto leggendo, ma ho capito solo che la differenza sostanziale sta nel fatto che mysqli è supportato solo da PHP5+ e ha delle differenze relative a cosa torna la query.. tutto qui?

  9. #9
    mysqli sta per mysql improved e sostanzialmente supporta funzionalità più avanzate rispetto alla classica estensione mysql

    la differenza tra la funzione mysql_query e la funzione mysqli_query è quasi inesistente, ma ovviamente non puoi usare la funzione mysql_query se usi mysqli e viceversa non puoi usare mysqli_query se usi mysql_query ... quindi c'è bisogno dell'apposita funzione ... tra l'altro, oltre al mero fattore di incompatibilità della risorsa ritornata dai rispettivi connect ... metti che è presente solo l'estensione mysql o solo la mysqli ... devi usare quelle apposite

    l'estensione mysqli ha varie funzionalità aggiuntive, rispetto alla mysql, in primis i (server) prepared statement

    personalmente non ne uso, anche se magari benissimo non faccio, però se li vuoi usare ne hai bisogno

    qui c'è una comparazione tra mysqli, mysql e pdo_mysql
    http://it.php.net/manual/en/mysqlinfo.api.choosing.php

    benché vi siano parecchie differenze, in realtà quelle principali sono relativi ai server prepared statements (quelli client sono pressocché inutili, ti possono essere utili se realizzi un sistema che deve supportare più backend dati e tra questi ve ne sono alcuni che non supportano i prepared statements) e al fatto che l'estensione mysql è deprecata da tempo

    tutte le altre differenze sono ininfluenti (query multiple in un sol comando possono portare a sql injection [basterebbe fare qualcosa tipo MIO CODICE SQL;-- e via, anche se ovviamente utilizzando nel contempo i prepared statement questo problema si risolve] ... inoltre del codice ben strutturato sfrutta piuttosto l'inserimento multiplo magari giocando con le chiavi e on duplicate key update) o altre non sono importanti (è vero che non posso avviare transazioni tramite le api così come non posso gestire le stored procedures tramite api ... ma posso sempre chiamare la query che faccia l'operazione ed ottengo praticamente lo stesso risultato) ... ovviamente usando mysqli ci sono meno rogne
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    L'estensione mysqli in realta' non e' ne carne ne' pesce. E' si "improved" rispetto a mysql base, pero' neanche poi tanto. Fornisce i prepared statements ma non in named parameters, poi ha questa doppia interfaccia OO/procedurale per non si capisce quale motivo. Sembra proprio un progetto con mezze idee sviluppate solo in parte.

    In breve invece di usare mysql o mysqli, molto meglio PDO.

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.