构建一个工具,该工具首先提取一个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();
有什么想法吗!
这是因为bind_param()
是MySQLi_*语法,并且您正在使用PDO。
fetch(PDO::FETCH_ASSOC)
- 使用PDO的
bindParam()
功能
这两种API并不混合。
如果不起作用,请使用bindValue()
在连接打开后立即添加$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
。这将是错误的信号。
洞察
我在您发布的前一个问题中注意到,您正在使用mysqli_*
函数连接到您的数据库。
$result = mysqli_query($conn, $query);
如果仍然是这种情况,那么你不能以任何方式、形状或形式将PDO与mysqli_
混合
- 这些MySQL API不会相互混合
- 咨询:http://php.net/manual/en/mysqlinfo.api.choosing.php