我正在尝试添加一个按钮,只需单击一下即可生成虚拟数据
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
include("classes/db.class.php");
$currentTime = time();
$totalUsers = '20000';
$usersUS1 = '5000';
$usersUS2 = '5263';
$usersFR1 = '8000';
$usersHK1 = '7425';
$usersUK1 = '0';
if(!empty($_POST))
{
$currentTime = time();
$db = new db();
$sql = "INSERT into connections (users, us1, us2, fr1, hk1, time, uk1) VALUES
('".$db->conn->real_escape_string($totalUsers) ."' ,
'". $db->conn->real_escape_string($usersUS1) ."' ,
'". $db->conn->real_escape_string($usersUS2) ."' ,
'". $db->conn->real_escape_string($usersFR1) ."' ,
'". $db->conn->real_escape_string($usersHK1) ."',
'". $db->conn->real_escape_string($currentTime) ."',
'". $db->conn->real_escape_string($usersUK1) ."')";
$result = $db->conn->query($sql);
return $result;
}
?>
然而,每次按下按钮,我都会收到0个错误,并且没有任何内容存储在数据库中。
php代码和html在同一页面上。
有谁知道是什么导致了这个问题?
编辑:
数据库类:
<?php
class db
{
private $m_sHost = "localhost";
private $m_sUserlogin = "root";
private $m_sPassword = "root";
private $m_sDatabase = "radius";
public $conn;
public function __construct()
{
$this->conn = new mysqli($this->m_sHost, $this->m_sUserlogin, $this->m_sPassword, $this->m_sDatabase);
}
}
?>
以及我用来发布的表单:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>screen wall</title>
<link rel="stylesheet" type="text/css" href="styles/style.css">
<!--<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>-->
<script src="scripts/d3-3.5.2/d3.js"></script>
</head>
<body>
<p> Current Timestamp:<?php echo time(); ?> </p>
<form method="POST">
<input type="text" required="required" name="titel" value="test field :)">
<button type="submit" id="generateBtn">Add Data</button>
</form>
</body>
同样,HTML和PHP在同一页面上。
答案 0 :(得分:0)
首先要做的是:您不应该使用real_escape_string
,因为输入不是来自用户,而是在代码本身中进行了硬编码。
其次,纠正问题的另一种方法是使用
if (!mysqli_query($db->conn,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
而不是
$result = $db->conn->query($sql);
希望这有帮助。
谢谢