PHP PDO语句将Null值插入Db表

时间:2017-06-21 07:44:50

标签: php mysql pdo

PHP PDO语句将Null值插入Db表

我的代码: -

                                       *Listed               *Listed
+--------+       +------------+      +-----------+         +----------+
| Person +>-----<+ Participant+>----<+  Project  +>-------<+ Release  |
+--------+       +------------+      +-----------+         +----------+
                                          v
                                          ^
                 +--------+      +-----------------+
                 | System +>----<+ ProjectInstance |
                 +--------+      +-----------------+
                                          v
                                          ^
                               +----------------------+        +--------------+
                               | ProjectInstancePhase +>------<+ ProjectPhase |
                               +----------------------+        +--------------+
                                       *Effort

当我执行时,它只插入带有自动增量id的空值。

提前致谢。

2 个答案:

答案 0 :(得分:0)

function pdate_product_desc_preview($fieldvalues, $company_digms1, $company_digms2, $company_digms3)
 {
    $query = "INSERT INTO eco_product_descTemp (`blockdigms1`, `blockdigms2`, `blockdigms3`) values(:company_digms1,:company_digms2,:company_digms3)";
    try {
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(":company_digms1", $company_digms1);
        echo $company_digms2;
        $stmt->bindParam(":company_digms2", $company_digms2);
        echo $company_digms3;
        $stmt->bindParam(":company_digms3", $company_digms3);
        $stmt->execute();
        var_dump($stmt->errorInfo());
        $productid = $this->conn->lastInsertId();
        return $productid;


    } catch (PDOException $e) {
        $e->getMessage();

    }
}

试试这个。 只需用 bindParam

替换 bindValue 即可

您可以在此处查看prepared-statements.php

答案 1 :(得分:0)

我已离开$fieldvalues,但我看不出它在做什么..

这是我的看法:

function pdate_product_desc_preview($fieldvalues, $company_digms1, $company_digms2, $company_digms3)
{
    if (!empty($company_digms1) && !empty($company_digms2) && !empty($company_digms3))
    {
        $stmt = $this->conn->prepare("INSERT INTO `eco_product_descTemp` (`blockdigims1`, `blockdigims2`, `blockdigims3`) VALUES (?,?,?)");
        $stmt->execute([$company_digms1, $company_digms2, $company_digms3]);

        echo 'Inserted!';
    } else {
        echo 'make sure all fields have been filled in!';
    }
}

因此,如果没有字段为空(NULL),则运行查询。如果一个为空(NULL),则运行make sure语句。