PHP PDO fetch返回false

时间:2014-09-07 13:05:14

标签: php mysql pdo

我一直在思考"错误"但是不能说它为什么会返回false。 我已经为此完成了SELECT,但这是在另一个文件中..

 $result = $db->dbh->prepare("SELECT thumbs FROM skill WHERE id=? LIMIT 1");
 $result->bindParam(1, $id);
    // $id == 4 here
 $result->execute();
 $row = $result->fetch(PDO::FETCH_ASSOC);
    // $row == false > why ?
 $thumbs = $row['thumbs'];

当我试图在PhpMyAdmin上运行它时,效果很好。

我在AJAX调用上执行此代码,并使用相同的config.php文件进行$ db连接。

另一个问题:

    $sql_in = $db->dbh->prepare("INSERT INTO `voted_ip` (id, ip) VALUES (:id, :ip)");
    // $id == 4
    $sql_in->bindParam(":id", $id);
    $sql_in->bindParam(":ip", $ip, PDO::PARAM_STR);
    $sql_in->execute();

它插入" 0"和我的IP。为什么0?

请帮忙

1 个答案:

答案 0 :(得分:1)

这是因为$ id是一个STRING由MySQL转换为0。

$id = intval($id);