使用 PHP PDO Prepared 语句插入数据时,If 语句不起作用

乔希

这是我的代码:

<?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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章