gpt4 book ai didi

php - 无法使用 http post 和 PHP 将值保存在数据库中

转载 作者:行者123 更新时间:2023-11-29 18:42:41 25 4
gpt4 key购买 nike

我正在尝试编写一个 PHP 代码,用于在数据库中保存温度数据和时间戳并在表中显示该值。温度数据通过http post发送到数据库。

这里是代码:

index.php(显示表格)

<?php

include("connect.php");

$link=Connection();

$sql="SELECT * FROM `temptrac_temp` ORDER BY `timestamp` DESC";

$result=mysqli_query($link, $sql);

/* determine number of rows result set */
$row_cnt = $result->num_rows;

printf("Result set has %d rows.\n", $row_cnt);
?>

<html lang="en">
<head>

<meta charset="utf-8">

<title>Arduino thermometer control panel</title>

<link rel="stylesheet" href="./css/index.css?v=1.0">

</head>


<body>

<div class="container">

<p>Temperature Arduino checker</p>

<p>The temperature is:</p>

<table class="normal" border="2" cellspacing="1" cellpadding="1">

<tr>
<td>&nbsp;Temperature&nbsp;</td>
<td>&nbsp;Timestamp&nbsp;</td>
<td>&nbsp;Status&nbsp;</td>

</tr>

<?php
if($result!==FALSE){


while($row = mysqli_fetch_array($result)) {



if($row["temp"] <= 8){

printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;Ok!&nbsp;</td></tr>",
$row["temp"], $row["timestamp"]);
}

if($row["temp"] > 8){

printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;Alert!&nbsp;</td></tr>",
$row["temp"], $row["timestamp"]);
}

}
mysqli_free_result($result);
mysqli_close($link);
}else{

printf("there is an error");

}
?>

</table>

</div>

</body>
</html>

connect.php(连接mysql服务器)

<?php

function Connection(){


/* php site version doesn't like so much "", prefer '' */
$mysqli = new mysqli('localhost', 'temptrac_temp', 'temptrac_temp2846', 'temptrac_temp');

/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}

/* fuck maaan! check the function name return*/
return $mysqli;

}
?>

add.php(在数据库中写入新行)

<?php
include("connect.php");

$link = Connection();

$temp = mysqli_real_escape_string($_POST["temp"]);
//$lat =$_POST["lat"];
//$lng =$_POST["lng"];

$sql = "INSERT INTO temptrac_temp (ID, temp, timestamp) VALUES (NULL, temp=?, CURRENT_TIMESTAMP)";

$stmt = $link->prepare($sql);

$stmt->bind_param("d", $temp);


$stmt->execute();



//mysqli_query($link, $query);


$stmt->close();
$link->close();

header("Location: index.php");
exit();
?>

我正在使用 https://www.hurl.it/ 进行 http post

在页面响应中,我总是看到(空),而不是看到索引页面的代码,例如连接未关闭。

我只能在数据库中写入一个新行一次,所以就像有时工作其他不......这很奇怪。

header("Location: index.php");

是最后一行,后面是

exit();

所以所有的过程都应该有效。

这里是 http 帖子的屏幕截图

enter image description here

enter image description here

为了防止 SQL 注入(inject),我观看了此视频 https://youtu.be/sJdWuPHKRRY?t=11m1s 。我不清楚如何使用绑定(bind)功能。在这里我看到“uid=?”而不仅仅是“?”。如何以正确的方式在 SQL 查询中包含动态的 $temp 变量?

非常感谢!

最佳答案

<?php
include("dbconnect.php");
$SQL= "INSERT INTO tabl1(reading,cost)VALUES(".$_GET["reading"].",".$_GET["cost"].")";
mysqli_query($dbh,$SQL);
header("Location: review_data.php");

?>

读取此脚本以将数据添加到服务器中。希望能帮助到你。如有任何疑问,请告诉我。

关于php - 无法使用 http post 和 PHP 将值保存在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843848/

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