【问题标题】:PHP sql insert won't work from a html form [duplicate]PHP sql插入无法从html表单工作[重复]
【发布时间】:2022-01-09 02:09:19
【问题描述】:

由于某种原因,这个小 php 插入不起作用,有人可以帮忙吗?我一直在尝试从 html 表单中上传一些数据。这是一些代码

$dbServerName = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "kollegium_data";

$connection = mysqli_connect($dbServerName, $dbUsername, $dbPassword, $dbName);

if(isset($_POST['submit'])){ 
    $name = $_POST['teacher'];
    $email = $_POST['postdate'];
    $contact = $_POST['posttext'];
    if($name !=''||$email !='') {

        mysql_query("INSERT INTO posts(teacher, postdate, posttext) VALUES ('$name', '$email', '$contact')");
        echo "sikeres";
    }
    else{
        echo "sikertelen";
    }
}
$connection->close();

<form action="insert.php" method="POST">
    Neve: <input type="text" name="teacher" id="tanar" /><br/>
    Jelenlegi dátum (év,hónap,nap): <input type="text" name="postdate" id="datum"/><br/>
    Kiírandó szöveg (max. 3500 karakter): <input type="text" name="posttext" id="kiiras"/><br/>
    <input type="submit">
</form>

【问题讨论】:

  • 没有任何东西叫 submit 所以 isset 总是一个 no
  • mysql_* 函数自 PHP 5.5.0 起弃用,并从 PHP 7.0.0 起删除。将您的代码切换为使用PDOmysqli。一定要使用准备好的语句和参数绑定,这样你再也不用担心引用问题了。另外,你不能混合使用 MySQL API,所以mysql_query 不能和mysqli_connect一起工作
  • 只是一个标记此关闭/重复的仅供参考。他从来没有问过mysql的问题,只是这里的一个用户注意到了。他问为什么它不插入,那是因为 HTML 问题。所以它并不是真正的 MYSQL 问题的重复。

标签: php html mysql insert


【解决方案1】:

您没有创建 $_POST['submit'] 变量。

改变

<input type="submit">

<input type="submit" name='submit'>

【讨论】:

    【解决方案2】:

    由于您使用mysqli_connect,因此您必须使用mysqli_query,其中第一个参数是$connection

    mysqli_query(
        $connection, 
        "INSERT INTO posts(teacher, postdate, posttext) VALUES ('$name', '$email', '$contact')"
    );
    

    你的代码也对SQL Injection攻击开放,所以你需要使用准备好的语句:

    $stmt = mysqli_prepare(
        $connection,
        "INSERT INTO posts(teacher, postdate, posttext) VALUES (?, ?, ?)"
    );
    
    mysqli_stmt_bind_param($stmt, "sss", $name, $email, $contact);
    
    mysqli_stmt_execute($stmt);
    

    【讨论】:

      猜你喜欢
      • 2020-03-25
      • 2015-08-25
      • 1970-01-01
      • 2015-07-09
      • 2023-03-24
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 2017-08-26
      相关资源
      最近更新 更多