【发布时间】:2014-09-07 13:05:13
【问题描述】:
我一直在思考那个“错误”,但不能说为什么它返回错误。 我已经为此做了一个 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 调用上执行此代码,并为 $db 连接使用相同的 config.php 文件。
另一个问题:
$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?
请帮忙
【问题讨论】:
-
检查
$result->errorInfo()是否有任何错误。 -
它返回 ["00000",null,null]。这是什么意思?
-
您的查询运行没有错误。见php.net/manual/en/pdostatement.errorinfo.php。如果
fetch()返回false,则结果集中没有(更多)行。您确定有返回带有该参数的行吗? -
ipaddress!==person你最好使用cookies -
做
var_dump($id)。如果它是一个字符串值(例如,它来自 $_GET 或 $_POST),并且以非数字字符开头,MySQL 会将其强制转换为整数零。换句话说,$id真的包含完全您期望的值吗?