在网上进行了多次尝试和研究之后,我找不到任何解决方法来解释为什么我在数据库插入查询中出错。有问题的错误是:
数据:查询出错:插入信号(严重性)值('gravitaalta')。
我拼命问问题出在哪里。无论它是在数据库本身中,还是在php或myajax中
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;
}
?>
4条答案
按热度按时间nnt7mjpx1#
改变,
对此,
你似乎试图做一个字符串连接,它有一个问题/打字错误也尝试引用列名
pxy2qtax2#
尝试更改。。。
对这个。。。
另外,确保数据库中有一个“segnalazione”表,并且在该表中有一个名为“gravit”的列à' 它被设置为除您提供的字符串之外的其他字符串。
j0pj023g3#
用这个
$query = "INSERT INTO Segnalazione(Gravità) VALUES('$gravita')";
代替$query = "INSERT INTO Segnalazione(Gravità) VALUES('.$gravita.')";
ne5o7dgx4#
这对你有用。你试图连接字符串,但没有工作,因为它应该!!!您应该使用嵌套在单引号中的双引号,或者更简单地使用上述方法。
不过,此解决方案将使您能够接受sql注入,因此我建议您使用准备好的语句: