非常简单的插入功能,没有数据存储,也没有收到错误

时间:2015-08-03 07:10:24

标签: php mysql database

我正在尝试添加一个按钮,只需单击一下即可生成虚拟数据

<?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在同一页面上。

1 个答案:

答案 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);

希望这有帮助。

谢谢