构建一个首先拉出sim编号的工具,然后将其标记为已拍摄。第一部分工作得很好,并通过ajax提供给我的页面。第二部分似乎不想工作。
include_once 'inc/db_connect.php';
$stmt = $db->query('SELECT sim FROM p2p WHERE taken = 0 ORDER by id ASC LIMIT 1');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result = $row['sim'];
}
echo json_encode($result);
$stmt = $db->prepare("UPDATE p2p SET taken = 1 WHERE sim = ?");
$stmt->bind_param('i', $result);
$stmt->execute();
任何想法!
答案 0 :(得分:6)
这是因为bind_param()
MySQLi_*语法是PDO并且您正在使用bindParam()
。
fetch(PDO::FETCH_ASSOC)
bindValue()
功能这两个API不会混用。
如果不起作用,请使用a previous question
在打开连接后立即添加$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
。这将表明错误。
洞察
我在您发布的http://php.net/manual/en/mysqlinfo.api.choosing.php中注意到您正在使用mysqli_*
函数连接到您的数据库。
$result = mysqli_query($conn, $query);
如果仍然如此,则无法以任何方式,形状或形式将PDO与mysqli_
混合。