PHP / MySQL Prepared语句没有为变量赋值?

时间:2013-08-28 17:57:00

标签: php mysql prepared-statement

我的php里面有一个准备好的语句(用连接选择),似乎只为其中一个变量赋值:

$dbRating = "x";
$dbFavDate = "x";

if($stmt = $dbcon->prepare("
    SELECT i.*, u.username, r.rating, f.date_favorited
    FROM image i 
        INNER JOIN user u ON u.uid = ? 
        LEFT JOIN rating r ON r.iid = ? AND r.uid = ? 
        LEFT JOIN favorite f ON f.iid = ? AND f.uid = ? 
    WHERE i.iid = ?")) {
    $stmt->bind_param("iiiiii", $qImageOwner, $qImageId, $uid, $qImageId, $uid, $qImageId);
    $stmt->execute();
    $stmt->bind_result($dbIid, $dbOwnerUid, $dbTitle, $dbDescription, $dbFilename, $dbCatid, $dbDateCreated, $dbDateModified, $dbOwnerUsername, $dbRating, $dbFavDate);
    $stmt->fetch();
    $stmt->close();
}

我已将此查询直接放入phpmyadmin并获取所有预期值,因此我知道它不是sql。我得到的所有值都按预期返回除了 $ dbFavDate,由于某种原因,它总是显示为'x'(我在查询之前分配给它的初始值),而$ dbRating是处理方式相同,返回预期的关联评级值。没有产生错误,似乎没有为变量分配从查询返回的实际值?

非常感谢任何帮助。 谢谢, TE

1 个答案:

答案 0 :(得分:-1)

哎呀!最后。它既不是sql OR php的问题。 javascript中的if语句正在使用

if (dbFavDate = 'x') {

而不是

if (dbFavDate == 'x') {

(> _<)!!感谢输入人员。