Errore "Query fallita"

controsenso

Utente Attivo
26 Nov 2014
36
1
0
Ho creato all'interno di una classe chiamata "class.ordini.dal" un metodo che mi permettesse di inserire dati all'interno di una tabella:

PHP:
    public function addOrdini($idordine,$idaccount,$data,$idstato){
        
        global $server;
    global $username;
    global $password;
    global $database_name;
    
  
    
    $connect = mysql_connect($server, $username, $password) or die("DBMS non trovato");

    mysql_selectdb($database_name, $connect) or die("Database $database_name non trovato");

    $query = "Insert into ordini(idordine,idaccount,data,idstato) values($idordine,$idaccount,$data,$idstato)";

    $rs = mysql_query($query, $connect) or die("query fallita");
           
    mysql_close($connect);
    
    return $rs;
        
    }

Richiamandolo poi nella pagina principale:

PHP:
include 'config.php';  //file che mi permette di accedere al database
include 'class.ordini.dal.php';


if(isset($_POST['btnConferma'])){
$ord=new OrdineDal();

$idordine=null;
$idaccount=$_REQUEST['id'];
$data=date("Y-m-d H:i:s"); 
$idstato=1;
$o=$ord->addOrdini($idordine,$idaccount,$data,$idstato);

if (count($o)==1)
echo "Inserimento avvenuto con successo";

}

Se clicco il pulsante mi dice: "Query fallita"..la query però mi sembra giusta, cosa ho sbagliato?
 
Ciao, nella funzione mysql_query() non ci va il secondo paremetro. Stamp comunque sempre anche gli eventuali errori sql
PHP:
or die("query fallita : " . mysql_error())
 
Ciao, nella funzione mysql_query() non ci va il secondo paremetro. Stamp comunque sempre anche gli eventuali errori sql
PHP:
or die("query fallita : " . mysql_error())

Se tolgo quel parametro visualizza "inserimento avvenuto" ma non viene inserito nella tabella..
 
Ultima modifica:
Stampa la query e provala su phpmyadmin
 
Stampa la query e provala su phpmyadmin

Ho provato la query su php myadmin ovviamente mettendo dei valori al posto delle variabili e funziona..con le variabili non funziona.. :(

Se mi compare "Inserimento avvenuto" vuol dire che comunque l'oggetto viene creato..ma per qualche motivo non viene inserito nella tabella
 
Ultima modifica:
PHP:
 $query = "Insert into ordini(idordine,idaccount,data,idstato) values($idordine,$idaccount,$data,$idstato)"; 
echo $query;
intendevo cosi, comunque mancano gli apici per la variabile $data visto che è una stringa
Ti converrebbe abbandonare mysql da subito e passare a mysqli che ha tra l'altro il supporto alla OOP
 
PHP:
 $query = "Insert into ordini(idordine,idaccount,data,idstato) values($idordine,$idaccount,$data,$idstato)"; 
echo $query;
intendevo cosi, comunque mancano gli apici per la variabile $data visto che è una stringa
Ti converrebbe abbandonare mysql da subito e passare a mysqli che ha tra l'altro il supporto alla OOP

La query la stampa così:
Insert into ordini(idordine,idaccount,data,idstato) values(,2,2015-03-14 15:55:10,1)

I valori sono giusti
 
mancano gli apici alla data, se la incolli cosi in phmyadmin non puo funzionare
 
Non funziona se lascio lo spazio al posto di idordine..se metto un numero funziona
Insert into ordini(idordine,idaccount,data,idstato) values(7,2,'2015-03-14 15:55:10',1)
 
se il campo in tabella è autoincrement dovrebbe andar bene anche null
Insert into ordini(idordine,idaccount,data,idstato) values(NULL,2,'2015-03-14 15:55:10',1)
comunque riprovala mettendo gli apici alla variabile
PHP:
$query = "Insert into ordini(idordine,idaccount,data,idstato) values($idordine,$idaccount,'$data',$idstato)";
e al massimo anche con NULL
PHP:
$query = "Insert into ordini(idordine,idaccount,data,idstato) values(NULL,$idaccount,'$data',$idstato)";
 

Discussioni simili