PHP if 和 while 语句无法正常工作

标签 php mysql sql oracle if-statement

我有带有两个查询的 php 代码。一个是在Oracle数据库中,结果是大约100行数据(数据内有SKU编号)。另一个是在mysql数据库中,大约有30行数据(数据中还有SKU编号)。

我需要逐行比较第一个查询和第二个查询中的每个 SKU。如果第一个查询中的 SKU 也出现在第二个查询中,那么我需要它来回显 SKU。

第二个查询中的所有 SKU 都在第一个查询中,因此我希望结果会回显所有 30 个 SKU,但事实并非如此。根据我更改语法的方式,它会回显 17 行、100 行或根本不回显任何行。

值得注意的是,这两个查询都运行良好。 Oracle 查询非常长,并且其中有很多子查询,因此我不会在下面包含完整的查询。 Oracle查询在SQL Developer中完美返回结果,MySQL查询在HeidiSQL中完美返回结果。这两个查询都经过测试并作为其他 php 文件中的表进行回显,以确保它们正常工作。

下面是我尝试修复的 php 文件到目前为止的样子;

<?php

$conn = oci_connect($user, $pswd, $hst);
$sql = oci_parse($conn,"[Really long Oracle Query]");

while ($row = oci_fetch_assoc($sql))
{
    $sku = $row['SKU'];
    $con = mysql_connect("[database host]", "[database user]", "[database password]");
    mysql_select_db("[database_name]");
    $sqls = "SELECT * FROM [table_name] WHERE [this_date_column] BETWEEN 
        DATE_SUB(NOW(), INTERVAL 14 DAY) AND NOW()";
    $result = mysql_query($sqls);
    $mailer = NULL;

    while($rows = mysql_fetch_assoc($result))
    {
        $m_sku = $rows['sku'];
        if ($m_sku == $sku)
        {
            $mailer == 'false';
        }   
    }
    if ($mailer == 'false')
    {
        echo $m_sku;
        echo "<br>";
    }       
}

?>

再次; MySQL 查询中只有 30 个 SKU,但 Oracle 查询中却有超过 100 个 SKU。 MySQL 查询中的所有 SKU 肯定都在 Oracle 查询中。

有人看到我做错了什么吗?

提前致谢,

-安东尼

最佳答案

您有基本的语法错误:
= 用于赋值
== 比较 2 个变量(不考虑类型 *)
=== 比较 2 个变量,包括这些类型。

您的代码应如下所示:

while($rows = mysql_fetch_assoc($result))
    {
        $m_sku = $rows['sku'];
        if ($m_sku == $sku)
        {
            $mailer = false; // == is for comparison, = is for assign
        }   
    }
    if ($mailer === false)
    {
        echo $m_sku;
        echo "<br>";
    }   

if($member == 'false'){...}

当“false”与 ==falsefull 值(0、null、false、array()、'')进行比较时......它不会对其进行处理,因为它被解析为“非空字符串”,因此它不是 falsefull

关于PHP if 和 while 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940089/

相关文章:

sql - 连接查询出现问题

mysql - MYSQL 同步同一个数据库中的两个表的记录

PHP在mysql中插入由json对象发布的数据

php - 更改mysql查询结果集的数组索引

php - 在Moodle中使用rest api创建测验

mysql - 从sql到elasticsearch查询的转换

sql - GCP Node js API 中的事务提交返回 {"code":10 ,"rowCounts":[]} with spanner

java - 将 Spring MVC 与内联 PHP 混合

javascript - 没有数据时如何设置条件

php - 确保在使用 PHP 时考虑所有异常