【问题标题】:Trying to pass user input into database [duplicate]试图将用户输入传递到数据库[重复]
【发布时间】:2019-11-14 02:08:02
【问题描述】:

所以我正在使用 XAMPP,并且我正在关注如何设置网站的本教程。现在该网页采用名字和姓氏。提交后,应将它们放入数据库中。每次我尝试测试它时都会收到此错误:Connected "successfullyError: INSERT into 'user'('fname', 'lname') VALUES ('abc','xyz') 你有SQL 语法错误;请查看与您的 MariaDB 服务器版本相对应的手册,以了解在 ''user'('fname', 'lname') VALUES ('abc','xyz')' 附近使用的正确语法1"

这是 html 的样子:

<!DOCTYPE html>
<html>
<body>

<form action="submit.php" method="post">
First Name:<br>
<input type="text" name="firstname">
<br>
Last Name:<br>
<input type="text" name="lastname">
<br><br>
<input type="submit" value="Submit">
</form>

</body>
</html>

这是具有将页面连接到数据库的 php 代码的文件。我是php新手,我试图定位语法错误,但无济于事。

<?php
$x = $_POST['firstname'];
$y = $_POST['lastname'];

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


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

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

echo "Connected successfully";

$sql = "INSERT into 'user'('fname', 'lname') VALUES ('$x','$y')";

if($conn->query($sql) === TRUE)
{
  echo "That's going on your permanent record loser";  
}
else { echo "Error: " . $sql . "<br>" . $conn->error; }

$conn->close();
?>

【问题讨论】:

  • 尝试将$sql = "INSERT into 'user'('fname', 'lname') VALUES ('$x','$y')";改为$sql = "INSERT INTO user (fname, lname) VALUES ('$x','$y')";
  • 没用。我之前尝试过类似的方法。
  • user 中的列是什么?如果列名没有正确写入或者您缺少列,它将无法正常工作。另外,请查看mysqli::bind_param()。现在这段代码非常不安全。
  • 您的 MySql 查询在表名上有 qoute。也使用准备好的语句。
  • @E2017 列是 fname 和 lname。还有一个 id 列,但我将其设置为自动迭代。

标签: php html mysql input


【解决方案1】:

我看到的唯一问题是您在表和列中使用单引号 ' 而不是使用“`”。单引号用作字符串分隔符。 尝试更改此部分

'user'('fname', 'lname')

进入

`user`(`fname`, `lname`)

【讨论】:

  • 哦,哇,我完全误读了教程中的内容。谢谢它的工作原理!
猜你喜欢
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 2015-03-16
  • 1970-01-01
  • 2014-02-08
相关资源
最近更新 更多