gpt4 book ai didi

php插入数据库值变为0

转载 作者:行者123 更新时间:2023-11-29 05:51:35 24 4
gpt4 key购买 nike

我刚开始为一个学校项目编写 PHP,我偶然发现了一个问题。我有一个 API,我将一些数据发布到该 API。数据是传感器的名称、ID 和类别。当我尝试将其插入我的 mySQL 数据库时,它没有输入正确的数据。它不是输入实际数据,而是将 0 输入到除建筑物之外的每一列。甚至是状态列,它是一个硬编码字符串。我已经尝试了几乎所有的方法(我所知道的 PHP 知识有限),但我很困惑。

require_once "../meta.php";

$tmpdevice = clean($_POST['label']);
$device = str_replace('¥', ':', $tmpdevice);

$tmpgenericClass = clean($_POST['zwave_class_generic']);
$genericClass = str_replace('¥', ':', $tmpgenericClass);

$tmpuniqueID = clean($_POST['thingUID']);
$uniqueID = str_replace('¥', ':', $tmpuniqueID);

$status = 'Not Accepted';
$building = 303;

if ($uniqueID == "") {
echo '{"status":"error"}';
exit;
}
if ($device == "") {
echo '{"status":"error"}';
exit;
}
if ($genericClass == "") {
echo '{"status":"error"}';
exit;
}

$servername = DB_HOST;
$username = DB_USER;
$password = DB_PASSWORD;
$databasename = DB_NAME;

$conn = new mysqli($servername, $username, $password, $databasename);
if ($conn->connect_error) {
die("Connection error: " . $conn->connect_error);
exit;
}

$stmt = $conn->prepare("INSERT IGNORE INTO Actuator (UniqueID, Device, GenericClass, Status, Building) values (?,?,?,?,?)");
$stmt->bind_param("idddd", $uniqueID, $device, $genericClass, $status, $building);

if ($stmt->execute()) {
echo '{"status":"ok"}';
} else {
echo '{"status":"error"}';
}

$conn->close();

?>

This is my database setup

最佳答案

问题是大部分字段都是字符串(varchar),但是当你绑定(bind)参数的时候,你绑定(bind)的是数字(i-整数,d-双)。

使用正确的数据类型进行绑定(bind)(s - 字符串):

$stmt->bind_param("ssssi", $uniqueID, $device, $genericClass, $status, $building);

关于php插入数据库值变为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53459138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com