2

这是我遇到的一段代码,据我所知它应该可以工作,但好像 if 语句不存在。

$payloadObj->data 在调用中提供并包含用于识别的唯一编号

        $limit="";
        $order=" ORDER BY rmtID";
        $where=" WHERE udid = '".$data."'";
        $data=$payloadObj->data;
        $now = date("o-m-d H:i:s");
        $query00="SELECT DISTINCT udid FROM rmtCustomer".$where; 
        $result00 = mysql_query($query00)
            or die("Query failed -".$query00);
        //$items=mysql_num_rows($result00);
        if ($result00) {
            if (mysql_num_rows($result00) == 0) {
            //if(!$items){
                $query11="INSERT INTO rmtCustomer (rmtCustomerID, udid, date) VALUES ('', '".$data."', '".$now."')";
                $result11 = mysql_query($query11)
                    or die("Query failed -".$query11);  
                $query22="INSERT INTO rmtSales (rmtSalesID, udid, productCount, date) VALUES ('', '".$data."', '9', '".$now."')";
                $result22 = mysql_query($query22)
                    or die("Query failed -".$query22);  
            }
        }

        $query="SELECT rmtTitle as product FROM rmtData".$order.$limit;
        $result = mysql_query($query)
            or die("Query failed -".$query);        
        $rows=array();
        while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
            $rows[] = $row;
        }

我使用变量 $limit、$order 和 $where 来完成查询,因为我有几个变量,这使它更容易。它们已被检查出来,它们根本不是问题。

期望的影响是运行第一个查询以检查新客户,如果没有找到记录,这是一个新客户,然后我想在 if 语句中运行查询以将它们添加到客户表和销售表然后继续其余的查询。如果第一个结果中有记录,则客户存在,我想跳过插入查询并直接移动到其余查询。

此示例显示了到目前为止的一些尝试,注释掉的两行是我的第一次尝试,但得到了相同的结果。

任何援助将不胜感激。

4

1 回答 1

1

一些东西:

  1. $data 在使用后(第 3 行)被初始化(第 4 行)。这不应该反过来吗?

  2. 如果 udid 是主键或唯一索引,您可以简单地运行插入并捕获“重复”错误。这将提高您的性能,因为您不需要第一个“选择”查询。注意:这将增加下一个 udid,以防它是一个自动递增的字段,即使插入失败。

  3. 你说“声明不存在”,我不太确定这是什么意思..

于 2012-11-26T06:39:58.940 回答