【发布时间】:2020-01-31 05:55:28
【问题描述】:
我正在使用扫描仪阅读器,所以当扫描仪读取代码时,我使用了 ajax,它应该将数据插入数据库。问题是数据没有插入。
在脚本/Ajax里面——query是我用来获取数据的变量(名字)
var query = $('#scanned-QR').val();
fetch_customer_data(query);
$(document).on('keyup', '#scanned-QR', function(){
var query = $(this).val();
fetch_customer_data(query);
});
function fetch_customer_data(query = '')
{
$.ajax({
url:"validScan.php",
method: 'GET',
data:{query:query},
dataType: 'json',
success:function(data) {
console.log(data);
if (data.status == '1') {
decoder.stop();
alert('Sucess!');
}
else if(data.status=='0'){
decoder.stop();
alert('Fail!');
}
},
error:function(err){
console.log(err);
}
});
}
我的输入/文本区域
<textarea id="scanned-QR" name="scanQR" readonly></textarea>
MySQL
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$link = mysqli_connect("localhost","root","");
mysqli_select_db($link, "schedule");
$query = $_GET['query'];
$res = mysqli_query($link,"INSERT INTO attendance (name) VALUES ('$query')");
if (mysqli_num_rows($res) > 0) {
$respose = array('status'=>'1');//1 for success
echo json_encode($respose );
} else {
$respose = array('status'=>'0');//0 for fail
echo json_encode($respose );
}
mysqli_close($link);
?>
【问题讨论】:
-
你能用
echo mysqli_error($link);发布错误消息吗?另外,你的attendance表只有两列? (PK和名称),如果不是,可能其他列是“非空”,所以它引发了错误。 -
@piratefache ,是的,我这样做是有目的的,以最简单的方式尝试而不添加太多。实际上没有错误。数据没有插入,它确实提供了数据,但它是空白数据
-
您可以打印 $query 以确保它不为空。同样在您的查询中,您可以像这样单引号您的列名:
INSERT INTO attendance (`name`) VALUES ('$query')
标签: javascript php mysql ajax