0

我只想将信息从文本表单传输到数据库中,但该值没有正确显示在数据库中。这是我所拥有的:

HTML 代码,用于表单:

<form method="post" action="process.php">

    <input type="text" maxlength="150" name="textbox">
    <input type="submit" name="submit">

</form>

进程.php

<?php
$con=mysqli_connect($host, $username, $password, $database);

$sql = mysqli_query($con,"INSERT INTO notes (User, Note)
VALUES ('test', '$_POST [textbox]')");

// I also tried writing $_POST ['textbox'] instead; didn't make a difference.

?>

但是,数据库中的输出如下:

用户:测试
注意:数组[文本框]

我如何能够更正“注释”列中的值(即使其成为表单中输入的值)?

4

3 回答 3

3

首先...您在 $_POST 和 ['textbox']; 之间有一个空格;它应该只是 $_POST['textbox']...

但你也需要先清理数据,所以......试试这个

$input = mysqli_real_escape_string($_POST['textbox']);

$sql = mysqli_query($con,"INSERT INTO notes (User, Note)
VALUES ('test', '$input')");

但实际上你应该使用 PDO 而不是已弃用的 mysql_* 函数......谷歌 PDO,并学习做准备好的语句。

这是与PDO...

 $conn = new PDO("mysql:host=$host;dbname=$database",$username,$password);

 $user = 'Test';
 $note = $_POST['textbox'];

 $sql = "INSERT INTO notes (User, Note) VALUES (:user,:note)";
 $q = $conn->prepare($sql);
 $q->execute(array(':user'=>$user,
              ':note'=>$note));

编辑...我还注意到您的输入没有关闭,每个输入的末尾都应该有一个 /...

<form method="post" action="process.php">

    <input type="text" maxlength="150" name="textbox" />
    <input type="submit" name="submit" />

</form>
于 2013-06-07T21:47:27.720 回答
0

$_POST 和 [文本框] 之间有一个空格。$_POST 是一个数组。因此,Array [textbox],即:ArraySPACE[textbox]

您应该删除空格,然后考虑使用准备好的语句。您不应该直接使用用户提交的数据而不先对其进行清理。

于 2013-06-07T21:47:29.270 回答
-1
$sql = mysqli_query($con,"INSERT INTO notes (User, Note)
VALUES ('test', '{$_POST['textbox']}')");
于 2013-06-07T21:47:25.973 回答