Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema con select

  1. #1
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157

    Problema con select

    Ciao sto iniziando a programmare in php e ricevo un errore durante l'elaborazione di una select.
    Premetto che non conosco bene la sintassi, ma ho provato più volte a correggerla. Attualmente la select è formata nel modo seguente

    // recupero le variabili
    $nome=$_REQUEST['nome'];
    $cognome=$_REQUEST['cognome'];
    $email=$_REQUEST['posta'];
    $utente=$_REQUEST['utente'];
    $codice=$_REQUEST['codice'];


    // Includo il file contenente la stringa di connessione
    include("include/connessione.php");

    // Creo due oggetti COM contenenti gli oggetti Connection e Recordset
    $cn = new COM("ADODB.Connection");
    $rs = new COM("ADODB.Recordset");

    // Apro la Connection ed il Recordset
    $cn->open($sc);
    $rs->Open("SELECT * FROM utenti WHERE e-mail='".$email"'", $cn);
    Sicuramente l'errore avviene in fase di lettura della variabile $email. Il dabase è in formato access.

    Grazie per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    $rs->Open("SELECT * FROM utenti WHERE e-mail='".$email"'", $cn);

    hai messo un " al posto di . comunque puoi usare le parentesi graffe per elaborare le variabili nelle stringhe.
    prova con

    $rs->Open("SELECT * FROM utenti WHERE e-mail={$email}", $cn);

    Ciao

  3. #3
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157
    Nulla ricevo se utilizzo le parentesi graffe:

    Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft JET Database Engine
    Description: Errore di sintassi (operatore mancante) nell'espressione della query 'e-mail=pippo@mail.com'.' in D:\Personal\www\ins_registr.php:34 Stack trace: #0 D:\Personal\www\ins_registr.php(34): com->Open('SELECT * FROM u...', Object(com)) #1 {main} thrown in D:\Personal\www\ins_registr.php on line 34
    se utilizzo l'altro metodo ricevo:
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\Personal\www\ins_registr.php on line 34
    Provo a postare il codice:
    <?PHP // recupero le variabili $nome=$_REQUEST['nome']; $cognome=$_REQUEST['cognome']; $email=$_REQUEST['posta']; $utente=$_REQUEST['utente']; $codice=$_REQUEST['codice']; print $nome; print "
    ". $cognome; print "
    ". $email; print "
    ". $utente; print "
    ". $codice; // Includo il file contenente la stringa di connessione include("include/connessione.php"); // Creo due oggetti COM contenenti gli oggetti Connection e Recordset $cn = new COM("ADODB.Connection"); $rs = new COM("ADODB.Recordset"); // Apro la Connection ed il Recordset $cn->open($sc); //$rs->Open("SELECT * FROM utenti WHERE e-mail='$email'", $cn); $rs->Open("SELECT * FROM utenti WHERE e-mail='".$email"'", $cn); // Controllo che sulla tabella ci siano dati if ($rs->EOF) print "

    Nessun dato trovato</p>"; // Se ce ne sono effettuo un ciclo di lettura else while ($rs->EOF == FALSE) { print "
    ". $email; $rs->MoveNext(); } // Chiudo il Recordset $rs->Close(); // $rs->Release(); -- non so perché ma da errore $rs = null; // Chiudo la Connection $cn->Close(); // $cn->Release(); -- non so perché ma da errore $cn = null; ?>

  4. #4
    Scrivi così:
    Codice PHP:
    $rs->Open("SELECT * FROM utenti WHERE e-mail='".$email."' "$cn); 
    io le graffe non le ho mai usate ma forse andava scritto così:

    Codice PHP:
    $rs->Open("SELECT * FROM utenti WHERE e-mail='{$email}' "$cn); 

  5. #5
    Ma sai che riguardando con più attenzione potrebbe anche essere il nome del campo e-mail a dare problemi?

    Prova così:
    Codice PHP:
    $rs->Open("SELECT * FROM utenti WHERE [e-mail]='".$email."' "$cn); 

  6. #6
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157
    Grazie mille Debiru, il tuo consiglio è giusto.
    Quindi i campi che contengono un valore testo devono essere indicati tra parentesi quadre, non me lo ricordavo. Grazie mille.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.