Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [SQL] Parametri insufficienti. Previsto 1

    ho questa tabella:
    >
    > Discussione (ID,Titolo,ID_Forum,Data,Ora,Username)
    >
    > Se faccio questa query funziona :
    >
    > $query = "SELECT TOP $num_of_val ID, Titolo
    > FROM Discussione
    > WHERE (((ID) NOT IN (SELECT TOP $start_val ID FROM Forum ORDER
    > BY ID))) AND
    > ID_Forum = " . $titoloforum . "
    > ORDER BY ID";
    >
    > mentre se faccio questa no :
    >
    > $query = "SELECT TOP $num_of_val ID, Titolo
    > FROM Discussione
    > WHERE (((ID) NOT IN (SELECT TOP $start_val ID FROM Forum ORDER
    > BY ID))) AND
    > Username = " . $utente . " AND
    > ID_Forum = " . $titoloforum . "
    > ORDER BY ID";
    >
    ho messo in rosso la parte aggiunta rispetto alla prima query

    mi dice :


    *Warning*: odbc_do(): SQL error: [Microsoft][Driver ODBC Microsoft
    Access] Parametri insufficienti. Previsto 1., SQL state 07001 in
    SQLExecDirect in
    *c:\programmi\easyphp1-7\www\mancini\_private\utenti_visualizza_elenco_di scussioni.php*
    on line *46*
    Error executing query SELECT TOP 10 ID, Titolo FROM Discussione WHERE
    (((ID) NOT IN (SELECT TOP 1 ID FROM Forum ORDER BY ID))) AND Username =
    Angy AND ID_Forum = 2 ORDER BY ID

    ho letto che l'errore è, solitamente, quando manca un parametro,oppure
    c'è un parametro che non va in quella tabella, ma non riesco a trovare
    dove è l'errore. il $utente lo prende dalla session, ma come si vede
    dalla query lo legge.

  2. #2
    Immagino che username sia una stringa quindi devi aggiungere gli apici:
    codice:
    $query = "SELECT TOP $num_of_val ID, Titolo
    FROM Discussione
    WHERE (((ID) NOT IN (SELECT TOP $start_val ID FROM Forum ORDER BY ID))) AND
    Username = '" . $utente . "' AND
    ID_Forum = " . $titoloforum . "
    ORDER BY ID";
    Del resto bastava leggere il messaggio di errore:
    *Warning*: odbc_do(): SQL error: [Microsoft][Driver ODBC Microsoft
    Access] Parametri insufficienti. Previsto 1., SQL state 07001 in
    SQLExecDirect in
    *c:\programmi\easyphp1-7\www\mancini\_private\utenti_visualizza_elenco_di scussioni.php*
    on line *46*
    Error executing query SELECT TOP 10 ID, Titolo FROM Discussione WHERE
    (((ID) NOT IN (SELECT TOP 1 ID FROM Forum ORDER BY ID))) AND Username =
    Angy
    AND ID_Forum = 2 ORDER BY ID
    $titoloforum che cosa è ? Se è una stringa vale lo stesso discorso
    Posta altri eventuali errori.

    Comunque questo modo di operare è poco sicuro...
    Leggiti la guida di html.it sull'sql injector: http://sicurezza.html.it/articoli/le...sql-injection/

    La prossima volta per il codice utilizza i tag CODE
    Experience is what you get when you don’t get what you want

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.