这是我的代码:
<?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声明,不必存储工资值,因为工资= 0.但它仍然在数据库中存储0。怎么解决?
答案 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)
,看看你应该实际呼叫哪一个......