【问题标题】:Update other table after inserting using jquery button, PHP 7 [duplicate]使用jquery按钮插入后更新其他表,PHP 7 [重复]
【发布时间】:2019-02-15 12:18:20
【问题描述】:

这是我的能够插入的 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 网址,它由我正在插入的查询组成,我也想更新

                        $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]);

我的方法正确吗?我错过了什么吗?请指正,谢谢。

【问题讨论】:

    标签: php jquery ajax database pdo


    【解决方案1】:

    不要引用占位符,这会使它们成为字符串,而不是占位符。在您的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
    

    因此驱动程序可以用这些值替换它们。这也应该引发错误,因为您有 2 个值正在尝试绑定,但没有占位符将其绑定到。

    【讨论】:

    • 这有点奇怪,因为我没有收到任何错误,使用这些不正确的方法内部 500 错误是常见错误。
    • 不是 PHP 语法错误。 PHP 将编译并执行良好。看看php.net/manual/en/pdo.error-handling.php
    • 更新正在进行中,非常感谢!由于发布时间要求,我无法将其标记为检查。我以为我对此采取了错误的方法。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2017-12-24
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多