jQuery的AJAX发送数据,并得到:SQLSTATE [HY093]:无效的参数号
问题描述:
我有这个jQuery的AJAX代码,将数据发送到服务器来更新字段:jQuery的AJAX发送数据,并得到:SQLSTATE [HY093]:无效的参数号
$(function() {
$('#addFieldForm2').submit(function(e) {
e.preventDefault();
if ($(this).parsley('validate')) {
$.ajax({
url: "updateUsluga.php",
type: "POST",
async: true,
data: { ajdi:ajdi,opis:$("#opis1").val(),kolicina:$("#kolicina1").val(),jmere:$("#jmere1").val(),cena:$("#cena1").val(),popust:$("#popust1").val(),porez:$("#pdv1").val(),valuta:$("#valuta1").val()},
dataType: "html",
success: function(data) {
console.log(data);
$('#izmeni').modal('hide');
$('#example').dataTable().fnDestroy();
drawVisualization();
},
我送,我可以从浏览器控制台看到(网络选项卡)这样的数据:
ajdi=24&opis=decimalni+broj1&kolicina=10&jmere=h&cena=11.50&popust=5&porez=5&valuta=Din
我updateUsluga.php文件是:
try {
$STH = $db->prepare("UPDATE usluge SET opis=:1, jmere=:2, kol=:3, cena=:4, valuta:=7, popust=:5, porez=:6 WHERE ID=:id AND user_id=:8");
$STH->bindParam(':id', $_POST['ajdi']);
$STH->bindParam(':1', $_POST['opis']);
$STH->bindParam(':2', $_POST['jmere']);
$STH->bindParam(':3', $_POST['kolicina']);
$STH->bindParam(':4', $_POST['cena']);
$STH->bindParam(':5', $_POST['popust']);
$STH->bindParam(':6', $_POST['porez']);
$STH->bindParam(':7', $_POST['valuta']);
$STH->bindParam(':8', $user_id);
$STH->execute();
} catch (PDOException $e) {
echo $e->getMessage();
}
echo "<p>Data submitted successfully</p>";
但是当我尝试运行这段代码我只是得到:
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens<p>Data submitted successfully</p>
我知道这是什么错误意味着,但我没有看到任何misstke到我的代码。请帮我解决这个简单但奇怪的问题。
问题是becouse我没有看到任何错误在我的代码...
答
$STH = $db->prepare("UPDATE usluge SET opis=:1, jmere=:2, kol=:3, cena=:4, valuta:=7, popust=:5, porez=:6 WHERE ID=:id AND user_id=:8");
你有一个错字上valuta:=7
,我认为它必须是valuta=:7
哇,thaks非常多,我是如此盲目。我试着整天解决这个问题! – MonkeyBusiness
很高兴帮助... – roullie