这是我的代码:
<?php
$salary = 0;
try {
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO TABLE (firstname, salary)
VALUES (:firstname, :salary)");
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':salary', $salary);
// insert a row
$firstname = "John";
if ( $respond["salary"] != 0)
$salary= $response["salary"];
$stmt->execute();
echo "New records created successfully";
}
?>
这只是所需的代码。在完整代码中,我使用 while 循环检索 5-10 个 JSON 文件。
我得到$response["salary"] from a JSON file
,但如果 JSON 文件中的薪水为空,我将值设为 0。因此它不存储以前 JSON 文件的值。
但这里发生的事情是:
如果 JSON 文件中的薪水为空,则我给出 $salary 变量0
值。
所以,根据IF语句,salary的值是不需要存储的,因为salary = 0。但是在数据库中还是存储了0。如何解决?
我的假设是您在IF
语句中调用了错误的查询。
这是我的看法:
$salary = 0;
$stmt = $this->conn->prepare("INSERT INTO `table` (`firstname`,`salary`) VALUES (?,?)");
if (!empty($response['salary']) && $response['salary'] != 0)
{
$salary = $response['salary'];
$stmt->execute([$firstname, $salary]);
echo 'New record created successfully';
} else {
echo 'error!';
}
我唯一的其他建议是var_dump($respond)
,然后var_dump($response)
看看你应该打电话给哪一个......
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句