php - 将变量值与 PHP 中的查询结果进行比较

标签 php mysql sql arrays database

我试图从表“totals”中提取所有“totalsDate”值,然后插入一条新记录或根据变量 $date 更新现有记录。

//getting all the dates from the totals table and assigning to row
    $sqlDate = "SELECT totalsDate FROM totals";
    $query = mysqli_query($dbCon, $sqlDate);
    //$row = mysqli_fetch_array($query);

    while($row = mysqli_fetch_array($query)){
      $rowDate = $row['totalsDate'];

       //if statement to either update the totals table or create a new record
      if($rowDate = $date){

      $sqlThree = "UPDATE totals SET lodgements = '$lodgementsAfter' WHERE branch_name = '$branchTest' AND totalsDate = '$date'";
      $query = mysqli_query($dbCon, $sqlThree);

      }

      else {
      $sqlFour = "INSERT INTO totals VALUES(NULL, '$branchTest', 0, '$amount', 0,  '$date')";
      $query = mysqli_query($dbCon, $sqlFour);
    }



    }

更新部分有效,但是我的 else 语句永远不会被执行,并且无法输入新记录。我也收到此错误:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in

我对使用 mysqli_fetch_array 以及如何实际使用数据有点困惑?

感谢您的帮助。

最佳答案

问题之一是 $query 在循环内被覆盖;参见这里:

while($row = mysqli_fetch_array($query)){

    // ...
    $query = mysqli_query($dbCon, $sqlThree);
    // ...
}

您应该 a) 根本不存储 mysqli_query() 的结果,或者 b) 选择不同的变量名称,例如$update_res = mysqli_query(...);

更好的是,使用单个查询即可完成这两项操作:

INSERT INTO totals VALUES (NULL, :branch, 0, :amount, 0, :date) 
ON DUPLICATE KEY UPDATE lodgements = :lodgements

只需确保在表上定义了正确的唯一约束即可。

关于php - 将变量值与 PHP 中的查询结果进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21842332/

相关文章:

php - 使用 url var 下载文件 Curl

php - 使用 Zend Json Server,ajax 调用在 css 弹出窗口中列出某些信息

php - MySQL里面有另一个表吗?

MySQL:没有项目的员工和没有员工的项目

mysql - SQL:如何使用两个具有依赖关系的条件?

mysql - 来自和到单个表的 SQL 组合

php - 如何在 PHP 中识别 CMYK 图像

php - 合并具有重复值但某些列为空的 mysql 列

python - SQLalchemy: alembic bulk_insert() 失败

c# - 从 .Net 获取存储过程信息