Errore Insert Into

  • Creatore Discussione Creatore Discussione danlupo
  • Data di inizio Data di inizio

danlupo

Utente Attivo
13 Lug 2009
73
0
0
Salve,

codice:

Codice:
$mysqli = new mysqli('localhost', 'root', 'password', 'om');

 $result = $mysqli->query("INSERT INTO users ('username','password','tipo') VALUES ('$utente','omeromusical','$priv')");


$utente da il nome giusto dell'utente,
$priv da il codice giusto di privilegio
I Campi esistono.


La Tabella users non si aggiorna con il nuovo record.

Grazie Daniele
 
Probabilmente l'errore è dato dal fatto che usi gli apici per indicare i nomi dei campi, quando di solito si usano i backtick (`) o, al limite, niente. E poi la libreria mysqli è inutile se non usi nemmeno le prepared statements:
PHP:
$mysqli = new mysqli('localhost', 'root', 'password', 'om');

$stmt = $mysqli->prepare('INSERT INTO users (username, password, tipo) VALUES (?, ?, ?)');
$stmt->bind_param('sss', $utente, 'omeromusicla', $priv);

if (!$stmt->execute()) {
    printf('Impossibile eseguire la query: "%s".', $stmt->error);
    exit();
}
 
In linea generale direi di non utilizzare mai nulla per delimitare i nomi di campi (neanche i backtick), proprio come ha fatto Alex nel suo esempio.
 
L'errore è stato a monte e me ne sono accorto dopo: pratcamente io andavo a creare un nuovo record assegnando un valore a solo tre campi e gli altri si aspettavano un valore.. Ho dovuto mettere un valore NULL di predefinito. Ora devo ri creare la tabella (tanto sto lavorando in locale) mettendo i tre campi (username, password, tipo) obbligatori e gli altri facoltativi..
 

Discussioni simili