这个问题在这里已有答案:
这是我能够插入的Jquery
$(function(){
$(document).on('click', '#addRefBtn', function(e){
var get_input = $('#qr_ref').val();
var get_po = $('#get_po').val();
location.reload();
$.ajax({
type: 'POST',
url: 'validate_qr.php',
data: {
qr_code:get_input,
po_ID: get_po
},
success: function(result){
// console.log(result);
},
error: function(result){
}
});
});
});
这是我在ajax中的url,它是我插入的查询的组成,也是我想要更新的
$query = $conn->prepare("INSERT INTO product_sales (product_id, client_id, po_ID, unitPrice, sales_date, updated_date, invoiceTerminated, reference_no, status)
VALUES (:product_id, :client_id, :po_ID, :unitPrice, :sales_date, :updated_date, :invoiceTerminated, :reference_no, :status)");
$query->execute([
'product_id'=> $product_id,
'client_id'=> $client_id,
'po_ID'=> $po_ID,
'unitPrice'=> $etc_price,
'sales_date'=> $date,
'updated_date'=> $updated_date,
'invoiceTerminated'=> $invoiceTerminated,
'reference_no'=> $New_ref_no,
'status'=> $status
]);
$queryUpdate = $conn->prepare("UPDATE backup_sales t1
JOIN product t2 ON (t1.model_id = t2.model_id)
SET t1.status = '1',
t2.prod_status = '1'
WHERE t1.po_ID = ':po_ID'
AND t2.model_id = ':product_id'");
$queryUpdate->execute(['po_ID'=>$po_ID, 'product_id'=>$product_id]);
我的方法是否正确?我错过了什么吗?请帮助我,谢谢。
不引用占位符,这使得它们成为字符串,而不是占位符。在你的UPDATE
中,WHERE
条款正在这样做,
WHERE t1.po_ID = ':po_ID' AND t2.model_id = ':product_id'
应该:
WHERE t1.po_ID = :po_ID AND t2.model_id = :product_id
所以驱动程序可以用值替换它们。这也应该抛出一个错误,因为你有两个值试图绑定但没有占位符来绑定它。