经过多次尝试和在线研究,我找不到任何解决数据库插入查询错误的方法。 有问题的错误是:
data: Error in query: INSERT INTO Signaling (Severity) VALUES ('gravitaAlta').
我拼命的问到底是哪里出了问题。无论是在数据库本身还是在 PHP 或在我的 Ajax 中
HTML
<form method="post" id="formHomepage">
<div>
<input type="email" name="email" required="" placeholder="Email" maxlength="30" autocomplete="on">
</div>
<div >
<a href="#" id="fotocamera-button" >
<label for="fileInput">Carica/Scatta Foto</label>
</a>
<input type="file" accept="image/*" name="file" required="" id="fileInput">
<img class="img-thumbnail d-none" src="#" id="foto-screen">
</div>
<div>
<select name="categoria" required="">
<optgroup label="Seleziona il problema">
<option value="mantoStradale" selected="" >Manto Stradale</option>
<option value="idrico">Idrico</option>
<option value="luceGas">Luce e Gas</option>
<option value="rfifiuti">Rifiuti</option>
<option value="telecomunicazioni">Telecomunicazioni</option>
</optgroup>
</select>
</div>
<div class="form-group">
<select class="form-control" name="gravita">
<optgroup label="Seleziona la tua gravità">
<option value="gravitaAlta" selected="">Gravità Alta</option>
<option value="gravitaMedia">Gravità Media</option>
<option value="gravitaBassa" >Gravità Bassa</option>
</optgroup>
</select>
</div>
<div class="form-group">
<textarea class="form-control" rows="5" name="descrizione" placeholder="Descrizione" maxlength="120"></textarea>
</div>
<div class="d-flex flex-row">
<button type="submit" >Invia Segnalazione</button>
<button type="reset">Reset</button>
</div>
</form>
AJAX
var gravita = $("#formHomepage select[name='gravita'] :selected").val();
var item = '&gravita=' + gravita;
$.ajax(
{
type: 'POST',
url: 'https://civicsensethecitizen.altervista.org/php/formCopy.php',
data: item,
success: function(data)
{
console.log("data: " + data);
},
error: function()
{
alert("Connessione non riuscita");
}
});
PHP
<?php
mysqli_set_charset('utf8');
if(isset($_POST['gravita']))
{
$gravita = mysqli_real_escape_string($_POST['gravita']);
$connessione = mysqli_connect('localhost','civicsensethecitizen','') or die (mysqli_errno ($connessione). mysqli_error ($connessione));
$db = mysqli_select_db($connessione, "my_civicsensethecitizen" ) or die ('Database non trovato!');
$query = "INSERT INTO Segnalazione(Gravità) VALUES('.$gravita.')";
$risultato = mysqli_query($connessione,$query) or die ("Error in query: $query. " . mysqli_connect_error());
mysqli_close($connessione);
echo $gravita;
}
?>
最佳答案
尝试改变...
$query = "INSERT INTO Segnalazione(Gravità) VALUES('.$gravita.')";
对于这个...
$query = "INSERT INTO Segnalazione(Gravità) VALUES('" . $gravita . "')";
此外,请确保您的数据库中有一个“Segnalazione”表,并且在该表中,有一个名为“Gravità”的列,并且它被设置为除了您提供的字符串。
关于php - 带有 Ajax/PHP 的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52968162/