- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Problema inserimento in db mysql da form
-
Problema inserimento in db mysql da form
Salve a tutti..
io ho questo tipo di problema, ho un form che all'inserimento dei dati dovrebbe inserirli nel database mysql ma mi dà sempre errore "Errore nella query. Query non eseguita":
vi posto i due file:
vendi.php
<form action="inserisci.php" method="POST" enctype="multipart/form-data">
<table
style="width: 530px; height: 100px; text-align: left; margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: right;"><strong>Data:</strong></td>
<td width="100"><input type="text" name="data" class="input_valuta_data" value="" onclick="Calendar.show(this, '%m/%d/%Y', true)" onfocus="Calendar.show(this, '%m/%d/%Y', true)" onblur="Calendar.hide()" /></td>
</tr>
<input size="30" name="venditore" value="" type="hidden" class="input" readonly>
<input type="hidden" name="email" value='""size="30" class="input" readonly>
<input type="hidden" name="regione" value="'' size="30" class="input" readonly>
<input type="hidden" name="localita" value=''" size="30" class="input" readonly>
<input size="35" name="mail_asta" value="" type="hidden" readonly><tr>
<tr>
<td style="width: 18%; text-align: right;"><strong>*</strong></td>
<td width="75%"><input type="text" name="titolo" size="30" class="input"></td>
</tr>
<tr>
<td style="text-align: right;"><strong></strong></td>
<td width="100"><input size="15"
value="" name="ean" type="text" class="input"> <a href="javascript:;"
onclick="window.open('ean.php', 'titolo', 'width=410, height=220, resizable, status, scrollbars=1, location');">+ info</a></td>
</tr>
<tr>
<td style="text-align: right;"><strong></strong><br><br></td>
<td width="100"> <select name="categoria" type="Text" id="categoria" class="input">
<option value="false" > </option>
le varie option
</select></td>
</tr>
<tr>
<td style="text-align: right;"><strong>
</strong></td>
<td><input size="8" name="prezzo" value="" type="text" class="input_valuta"> Dividi i centesimi con il punto</td>
</tr>
<td style="text-align: right;"><strong></strong></td>
<td>
<input size="8" name="prezzo_asta" value="" type="text" class="input_valuta"> Dividi i centesimi con il punto
</td>
</tr><tr>
<td style="text-align: right;"><strong>* </strong></td>
<td><input size="8" name="risp1" value="" type="text" class="input_valuta"> Dividi i centesimi con il punto <a href="javascript:;"
onclick="window.open('riserva.php', 'titolo', 'width=410, height=210, resizable, status, scrollbars=1, location');">+ info</a>
</td>
</tr>
<tr>
<td style="text-align: right;"><strong></strong></td>
<td><input type="text" name="dom1" class="input_valuta_data" value="" onclick="Calendar.show(this, '%m/%d/%Y', true)" onfocus="Calendar.show(this, '%m/%d/%Y', true)" onblur="Calendar.hide()" />
</td>
</tr>
<tr>
<tr>
<td style="text-align: right;"><strong></strong></td>
<td><input size="8" name="spedizione" value="" type="text" class="input_valuta"> Se la spedizione è gratuita inserisci 0 oppure lascia vuoto.
</td>
</tr>
<tr>
<td style="width: 18%; text-align: right;"><strong>:</strong></td>
<td width="75%"><input type="text" name="quantita" size="4" class="input_valuta"></td>
</tr><tr>
<td style="width: 18%; text-align: right;"><strong></strong></td>
<td width="75%"><textarea name = "descrizione" ROWS = "20" COLS = "50" class="textarea"></TEXTAREA></td>
</tr>
<tr>
<td style="text-align: right;"><br><strong>*</strong><br><br></td>
<td>
Nuovo <input type="radio" name="condizione" value="Nuovo"/>
Usato <input type="radio" name="condizione" value="Usato"/>
</td>
</tr>
<tr>
<td style="text-align: right;"><strong></strong></td>
<td width="100"><input type="file" name="linkimg" size="40" class="input"></td>
</tr><tr>
<td style="text-align: right;"><input name="captcha" size="4" type="text" value="<?= $frasi[$rand] ?>" readonly></td>
<td style="text-align: left;"><input type="text" name="contr_cap" value="" class="input_valuta_data"> Scrivi il codice</td>
</tr>
</tbody>
</table><br> *campi obbligatori
<hr>
<input type="submit" class="submit" name="submit" value="Inserisci Oggetto" />
</form>inserisci.php
<?php
$username="";
$password="";
$database="";do {
if (is_uploaded_file($_FILES['linkimg']['tmp_name'])) {
// Controllo che il file non superi i 18 KB
if ($_FILES['linkimg'] > 52428800) {
$msg = "<p>Il file non deve superare i 180 KB!!</p>";
break;
}
// Sposto il file nella cartella da me desiderata in questo caso upload_img
if (move_uploaded_file('upload_img/'.$_FILES['linkimg']['tmp_name'],'upload_img/'.$_FILES['linkimg']['name'])) {
$msg = "<p>Errore nel caricamento dell'immagine!!</p>";
break;
}
}
} while (false);
echo $msg;$data=$_POST['data'];
$venditore=$_POST['venditore'];
$titolo=$_POST['titolo'];
$ean=$_POST['ean'];
$categoria=$_POST['categoria'];
$prezzo=$_POST['prezzo'];
$prezzoasta=$_POST['prezzo_asta'];
$mailasta=$_POST['mail_asta'];
$spedizione=$_POST['spedizione'];
$email=$_POST['email'];
$regione=$_POST['regione'];
$localita=$_POST['localita'];
$descrizione=$_POST['descrizione'];
$condizione=$_POST['condizione'];
$linkimg='upload_img/'.$_FILES['linkimg']['name'];
$quantita=$_POST['quantita'];
$dom1=$_POST['dom1'];
$risp1=$_POST['risp1'];
$cap=$_POST['captcha'];
$cont=$_POST['contr_cap'];mysql_connect("",$username,$password);
@mysql_select_db($database)
or die( "Impossibile selezionare il database.");$query = "INSERT INTO utenti ('$id','$data','$venditore','$titolo','$ean','$categoria','$prezzo','$prezzoasta','$mailasta','$spedizione','$email','$regione','$localita','$descrizione','$condizione','$linkimg','$quantita','$dom1','$risp1','$cap',$contr')";
mysql_query($query) or die( "Errore nella query. Query non eseguita");
mysql_close();?>
AIUTATEMI STO IMPAZZENDO...
-
Ciao,
invece di:
[php]
mysql_query($query) or die( "Errore nella query. Query non eseguita");
[/php]
Metti:
[php]
mysql_query($query) or die( "Errore nella query. Query non eseguita".mysql_error());
[/php]
In modo da visualizzare l'errore nella query.
-
Grazie ora ci provo...e ti dico...
-
Dark,
ho provato ad inserire un oggetto e questo mi ha dato come errore:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hard disk portatile Rikiki di LaCie presenta uno dei formati più piccoli sul me' at line 1
penso sia l'apostrofo " ' " quindi come faccio a dire al database che sono dei caratteri speciali??
Se sbaglio correggimi subito...
-
Devi utilizzare mysql_real_escape_string sulle variabili prima di utilizzarle nella query.
-
MI faresti un esempio?
-
Una cosa di questo genere:
[php]
$data=mysql_real_escape_string($_POST['data']);
[/php]
-
Ho fatto come mi hai detto e questo è il risultato:
Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
-
Puoi postare il codice completo che hai utilizzato?
EDIT: Il mysql_connect mettilo all'inizio non prima di fare la query.
-
Dal codice che ho postato ho modificato questo:
$data=mysql_real_escape_string($_POST['data']);
$venditore=mysql_real_escape_string($_POST['venditore']);
$titolo=mysql_real_escape_string($_POST['titolo']);
$ean=mysql_real_escape_string($_POST['ean']);
$categoria=mysql_real_escape_string($_POST['categoria']);
$prezzo=mysql_real_escape_string($_POST['prezzo']);
$prezzoasta=mysql_real_escape_string($_POST['prezzo_asta']);
$mailasta=mysql_real_escape_string($_POST['mail_asta']);
$spedizione=mysql_real_escape_string($_POST['spedizione']);
$email=mysql_real_escape_string($_POST['email']);
$regione=mysql_real_escape_string($_POST['regione']);
$localita=mysql_real_escape_string($_POST['localita']);
$descrizione=mysql_real_escape_string($_POST['descrizione']);
$condizione=mysql_real_escape_string($_POST['condizione']);
$linkimg='upload_img/'.$_FILES['linkimg']['name'];
$quantita=mysql_real_escape_string($_POST['quantita']);
$dom1=mysql_real_escape_string($_POST['dom1']);
$risp1=mysql_real_escape_string($_POST['risp1']);
$cap=mysql_real_escape_string($_POST['captcha']);
$cont=mysql_real_escape_string($_POST['contr_cap'];
-
Ho effettuato 2 inserimenti e non ha dato ancora problemi per ora...Se ho risolto ti ringrazio con tutto il cuore!!!