MYSQL PHP插入到表中

MYSQL PHP插入到表中,php,mysql,html,Php,Mysql,Html,您的最后一个参数值在单引号中。替换为双引号,使其显示为“…”.$password.“,“User”);” 最后一个参数值用单引号括起来。替换为双引号,使其显示为“…”.$password.“,“User”);” 我不懂PHP。不过我会尝试帮助你使用MySQL 我认为insert查询中的引号有问题 尝试删除values子句中的单引号。我不懂PHP。不过我会尝试帮助你使用MySQL 我认为insert查询中的引号有问题 尝试从您的values子句中删除单引号。您使用的是mysqli,这是一件好事,但

您的最后一个参数值在单引号中。替换为双引号,使其显示为“…”.$password.“,“User”);”

最后一个参数值用单引号括起来。替换为双引号,使其显示为“…”.$password.“,“User”);”

我不懂PHP。不过我会尝试帮助你使用MySQL

我认为insert查询中的引号有问题


尝试删除values子句中的单引号。

我不懂PHP。不过我会尝试帮助你使用MySQL

我认为insert查询中的引号有问题


尝试从您的values子句中删除单引号。

您使用的是
mysqli
,这是一件好事,但您使用不正确,并且暴露了许多非常严重的SQL注入错误,其后果可能非常严重

这就是您应该做的,以实际解决示例中存在的众多问题:

<?php
$conn= new mysqli("localhost", "my_user", "my_password", "world"); //changed for the sake of this question

$username = $_POST['Username'];
$password = sha1($_POST['Password']);
$email = $_POST['Email'];
$firstname = $_POST['FirstName'];
$lastname = $_POST['LastName'];

$insert = 'INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES ("'.$firstname.'", "'.$lastname.'", "'.$email.'", "'.$username.'", "'.$password.'", 'User');';

$result = $conn->query($insert);

?>
<form method='post' action='regprocess.php'>
<fieldset class="register">
<h2>Register</h2>
<ul>
    <li><label for="FirstName">First Name: </label> <input type="text" name="FirstName" id="FirstName"></li>
    <li><label for="LastName">Last Name: </label> <input type="text" name="LastName" id="LastName"></li>
    <li><label for="Email">Email: </label><input type="email" name="Email" id="Email"></li>
    <li><label for="Username">Username: </label><input type="text" name="Username" id="Username"></li>
    <li><label for="Password">Password: </label><input type="password" name="Password" id="Password"></li>
    <li><input type="submit" value="Register"></li>
</ul>
</fieldset></form>
占位符的主要优点是不必担心如何正确引用数据,它会自动为您完成。它还很大程度上避免了在语句中使用两种不同的引号


如果不为放入SQL的任何所有数据使用占位符,您可能会遇到严重的麻烦。您必须对此保持警惕。

您正在使用
mysqli
是件好事,但是您没有正确地使用它,并且将自己暴露在许多非常严重的SQL注入错误中,其后果可能非常严重

这就是您应该做的,以实际解决示例中存在的众多问题:

<?php
$conn= new mysqli("localhost", "my_user", "my_password", "world"); //changed for the sake of this question

$username = $_POST['Username'];
$password = sha1($_POST['Password']);
$email = $_POST['Email'];
$firstname = $_POST['FirstName'];
$lastname = $_POST['LastName'];

$insert = 'INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES ("'.$firstname.'", "'.$lastname.'", "'.$email.'", "'.$username.'", "'.$password.'", 'User');';

$result = $conn->query($insert);

?>
<form method='post' action='regprocess.php'>
<fieldset class="register">
<h2>Register</h2>
<ul>
    <li><label for="FirstName">First Name: </label> <input type="text" name="FirstName" id="FirstName"></li>
    <li><label for="LastName">Last Name: </label> <input type="text" name="LastName" id="LastName"></li>
    <li><label for="Email">Email: </label><input type="email" name="Email" id="Email"></li>
    <li><label for="Username">Username: </label><input type="text" name="Username" id="Username"></li>
    <li><label for="Password">Password: </label><input type="password" name="Password" id="Password"></li>
    <li><input type="submit" value="Register"></li>
</ul>
</fieldset></form>
占位符的主要优点是不必担心如何正确引用数据,它会自动为您完成。它还很大程度上避免了在语句中使用两种不同的引号

如果不为放入SQL的任何所有数据使用占位符,您可能会遇到严重的麻烦。您必须对此保持警惕。

作为建议,请始终使用“从sql查询文本的开始到结束

$stmt = $conn->prepare('INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES (?,?,?,?,?,?)');

$stmt->bind_param($firstname, $lastname, $email, $username, $password, 'User');
$stmt->execute();

$result = $stmt->get_result();
可以这样说:

$insert = 'INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES ("'.$firstname.'", "'.$lastname.'", "'.$email.'", "'.$username.'", "'.$password.'", 'User');';
在您的查询中,您有“User”,您需要转义“as”

在将内容添加到数据库之前,不要忘了对其进行清理

作为建议,请始终使用“从sql查询文本的开始到结束

$stmt = $conn->prepare('INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES (?,?,?,?,?,?)');

$stmt->bind_param($firstname, $lastname, $email, $username, $password, 'User');
$stmt->execute();

$result = $stmt->get_result();
可以这样说:

$insert = 'INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES ("'.$firstname.'", "'.$lastname.'", "'.$email.'", "'.$username.'", "'.$password.'", 'User');';
在您的查询中,您有“User”,您需要转义“as”


在将内容添加到数据库之前,请不要忘记始终清理内容

您是否发现
用户
的颜色错误?查询中有错误。尝试转义
用户
部分周围的引号,使其成为
\'User\'
。您是指值部分中的用户位吗?或者数据库用户?使用准备好的语句,否则您将容易受到攻击。您是否发现
用户
的颜色错误?查询中有错误。尝试转义
用户
部分周围的引号,使其成为
\'User\'
。您是指值部分中的用户位吗?或者数据库用户?使用准备好的语句,否则您将容易受到攻击