【问题标题】:php Data not stored in mySQL database using XAMPPphp 数据未使用 XAMPP 存储在 mySQL 数据库中
【发布时间】:2016-06-17 11:46:57
【问题描述】:

我有这段代码,我正在使用最新版本的 XAMPP:

文件名:store.html

<!DOCTYPE html>

<html>
<body>

<form action="store.php" method="post">
User input: <input type="text" name="userinput"><br>
<input type="submit">
</form>

</body>
</html>

文件名:store.php

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
 } 
 echo "Connected successfully";

$input = $_POST["userinput"];


$sql = "INSERT INTO table_1 (s_num)
VALUES ('$input')";


 ?>

无论我做什么,都不会将数据添加到数据库中。请帮忙。谢谢。

【问题讨论】:

    标签: php mysqli xampp


    【解决方案1】:

    这里的问题是您从未执行过查询。

    $sql = mysqli_query($conn,"INSERT INTO table_1 (s_num)
    VALUES ('$input')");
    
    if(!sql){
    
       echo "Error: " . mysqli_error($conn);
    
    }
    
    else{
    
       echo "Success";
    
    }
    

    参考:


    如果涉及到用户输入(除了您自己),您当前的代码对SQL injection 开放。

    使用prepared statementsPDO with prepared statements它们更安全


    另外,看到您是在自己的机器上运行它,请确保您以 http://localhost/file.php 而不是 file:///file.php 访问。

    【讨论】:

    • 谢谢!有效!我想知道这个符号“->”是什么意思?我对 php 很陌生..
    • @JuandelaCruz 不客气。您是指$conn-&gt;connect_error 中的-&gt; 吗?如果是这样,那就是面向对象方法的语法。
    【解决方案2】:

    您没有执行您的 sql 插入代码。 在这行之后:

    $sql = "INSERT INTO table_1 (s_num)
    VALUES ('$input')";
    

    添加以下行:

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    
    $conn->close();
    

    【讨论】:

      猜你喜欢
      • 2017-12-10
      • 2018-09-04
      • 2021-03-16
      • 2010-12-19
      • 2014-06-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      相关资源
      最近更新 更多