查询在PHPMyAdmin中运行,但在PHP代码中不运行

时间:2017-01-06 07:06:09

标签: php mysql

我正在尝试调试一个奇怪的问题。我有一个查询,它连接几个表来提取各种信息来填充发送的一些电子邮件。每当我尝试生成一些测试电子邮件以验证代码是否正常工作时,由于此查询问题,其中一封电子邮件产生时没有任何数据。

以下是运行查询的函数:

function getSData($id,$uid)
{
    global $sql;

    echo "PID: ".$id." | UID: ".$uid."</br>";

    if ($pd_stmt = $sql->prepare("select t1.Name,t2.SDate,t2.DCode,t3.Quantity,t2.Location,t3.Cost from seminar_events t2 inner join seminars t1 on t2.SID = t1.ID inner join cart_list t3 on t2.ID = t3.PID where t2.ID = ? and t3.CID = ?;"))
    {
        if ($pd_stmt->bind_param('ii',$id,$uid))
        {
            if ($pd_stmt->execute())
            {
                $pd_stmt->bind_result($sname,$sdate,$dcode,$qty,$slocale,$cost);
                $pd_stmt->fetch();

                echo "Array:";
                print_r(array("Name"=>$sname,
                             "SDate"=>$sdate,
                             "DCode"=>$dcode,
                             "Quantity"=>$qty,
                             "Local"=>$slocale,
                             "Cost"=>number_format((float)$cost)));
            } else{
                echo $sql->error;
            }
        } else{
            echo $sql->error;
        }
    } else{
        echo $sql->error;
    }
}

这是PHP输出:

  

103 //来自早期的回显,在调用此函数之前检查$ pID的值,并作为第一个arg传递

     

PID:103 | UID:24

     

阵列:

如果我接受这个查询和上面的值并将它们替换为?查询中的参数并在PHPMyAdmin中运行我得到了我期望的记录。

1 个答案:

答案 0 :(得分:0)

如果您要编写哪个SQL AL,那么您使用它会有所帮助,因为它似乎不是PDO或Mysqli。但我可以想到 - 它与两者类似,然后你应该看看bind_param采用哪些参数。在PDO中,有变量的参数,变量和类型。请检查此方法的参考,如果有一个bind_value方法,那么这里会更好,或者如果执行方法无法获得输入参数,如http://php.net/manual/de/pdostatement.execute.php