php - 如何修复:PDOStatement::execute() 期望参数 1 为数组,在第 64 行 C:\wamp64\www\invoiceTem01-Create.php 中给出的字符串

标签 php mysql insert-update

<?php
    if($_POST){
        // include database connection
        include database.php;

        try{

            // insert query 01
            $query = "INSERT INTO invoice_master SET  y_sign=:y_sign, o_sign=:o_sign, tel=:tel, date=:date, terms=:terms, g_weight=:g_weight, n_weight=:n_weight, nop=:nop, payment=:payment, total=:invoice_total";


            // prepare query for execution
            $stmt = $con->prepare($query);

            // posted values
            $y_sign=htmlspecialchars(strip_tags($_POST['y_sign']));
            $o_sign=htmlspecialchars(strip_tags($_POST['o_sign']));
            $tel=htmlspecialchars(strip_tags($_POST['tel']));
            $terms=htmlspecialchars(strip_tags($_POST['terms']));
            $g_weight=htmlspecialchars(strip_tags($_POST['g_weight']));
            $n_weight=htmlspecialchars(strip_tags($_POST['n_weight']));
            $nop=htmlspecialchars(strip_tags($_POST['nop']));
            $payment=htmlspecialchars(strip_tags($_POST['payment']));

            $invoice_total=htmlspecialchars(strip_tags($_POST['invoice_total']));


            // bind the parameters
            $stmt->bindParam(':y_sign', $y_sign);
            $stmt->bindParam(':o_sign', $o_sign);
            $stmt->bindParam(':tel', $tel);
            $stmt->bindParam(':date', $date);
            $stmt->bindParam(':terms', $terms);
            $stmt->bindParam(':g_weight', $g_weight);
            $stmt->bindParam(':n_weight', $n_weight);
            $stmt->bindParam(':nop', $nop);
            $stmt->bindParam(':payment', $payment);

            $stmt->bindParam(':invoice_total', $invoice_total);

            // specify when this record was inserted to the database
            $date=date('m-d-Y');
            /* $stmt->bindParam(':created', $created); */

            // Execute the query
            if($stmt->execute()){
                $id = $con->lastInsertId($query);

                echo "New record created successfully. Last inserted Invoice ID is: " . $id."/2019/2020";
                $query1 = "UPDATE invoice_master SET invoice_no='$id/2019/2020' , invoice_name='TEMP01' WHERE $id";
                if ($stmt->execute($query1)){

                }

            }else{
                echo "<div class='alert alert-danger'>Record In Error state.</div>";
            }

        }
            // show error
        catch(PDOException $exception){
            die('ERROR: ' . $exception->getMessage());
        }
    }
    ?>

我想根据第一个插入原始数据更新发票编号和发票名称。 我创建此代码是为了当我们将发票详细信息插入到表中时,我想生成自己的发票编号并将其插入到表中。我有一个表,它可以添加原始倍数,所以我需要将该表数据插入到表中,如果您是先生,请告诉我如何做这些事情..

最佳答案

您正在使用PDOStatement::execute() :

$query1 = "UPDATE invoice_master SET invoice_no='$id/2019/2020' , invoice_name='TEMP01' WHERE $id";
    if ($stmt->execute($query1)){

但是你必须使用PDO::query() ,如果您想创建新查询或 PDO::exec()如果您想运行查询而不获取结果:

$query1 = "UPDATE invoice_master SET invoice_no='$id/2019/2020' , invoice_name='TEMP01' WHERE $id";
    if ($con->exec($query1)){

关于php - 如何修复:PDOStatement::execute() 期望参数 1 为数组,在第 64 行 C:\wamp64\www\invoiceTem01-Create.php 中给出的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57138630/

相关文章:

php - PDO 使用外键插入到表中

php - 通过 Composer 更新 Slim

php - 通过 mysql 进行 JSON Android 登录验证

mysql - 限制mysql查询列中的字符

mysql - 用 MySQL 替换 hsqldb

list - Prolog 创建列表

javascript - 如何在 jQuery 中使用 .click 函数

php - PHP CodeIgniter 框架中的命名空间

mysql - nodejs 如何用 2 条语句执行 mysql 查询

mysql - 插入 MySQL 表或更新(如果存在)