php - 从 PHP 到 MySQL bind_param() bool 错误
问题描述
我无法找到错误,也无法从互联网上找到想法。该数据库具有密钥、用户IP 和日期。代码段是:
$last = $conn->query("SELECT LAST_INSERT_ID();");
if (strcmp($last, "<empty string>") == 0) {
$index = 0;
} else {
$index = $last + 1;
}
$stmt = $conn->prepare("INSERT INTO Users (key, userIP, date) VALUES (?, ?, ?)");
$stmt->bind_param("iss", $key, $ip, $date);
$key = $index;
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d H:i:s');
这个想法是我保存最后一个“密钥”并为其添加 1。如果数据库为空,它似乎不起作用。我看了好几个小时,所以我的想法已经用完了。
解决方案
您需要获取查询的结果。
$result = $conn->query("SELECT LAST_INSERT_ID();");
$row = $result->fetch_row();
$last = $row[0];
if ($last == "") {
$index = 0;
} else {
$index = $last + 1;
}
但是您不需要为此执行查询,它有一个内置函数:
$last = $conn->insert_id;
另一个问题是这key
是一个保留字,所以你需要用反引号引用它。
$stmt = $conn->prepare("INSERT INTO Users (`key`, userIP, date) VALUES (?, ?, ?)");
推荐阅读
- snakemake - 多个用户执行相同的工作流程
- python - 如何从时间序列中消除不断增长的波动性?
- computer-vision - 迭代 lucas kanade 光流
- xampp - 无法在 XAMPP 中编辑 config.inc.php
- flutter - 如何在 Flutter 中设计过滤器?
- python - exec() python 命令停止整个执行
- apache-kafka-connect - 没有任何日志文件包含偏移 SCN: 9483418337736,需要重新快照
- kubeflow - 如何以编程方式从管道函数创建 Kubeflow 循环运行?
- c++ - Arduino millis() 一个接一个地打印值
- python - 如何将多维数组存储在python的文件中?