PHP PDO语句将Null值插入Db表
我的代码: -
*Listed *Listed
+--------+ +------------+ +-----------+ +----------+
| Person +>-----<+ Participant+>----<+ Project +>-------<+ Release |
+--------+ +------------+ +-----------+ +----------+
v
^
+--------+ +-----------------+
| System +>----<+ ProjectInstance |
+--------+ +-----------------+
v
^
+----------------------+ +--------------+
| ProjectInstancePhase +>------<+ ProjectPhase |
+----------------------+ +--------------+
*Effort
当我执行时,它只插入带有自动增量id的空值。
提前致谢。
答案 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
语句。