我是网络开发的新手,我还在练习。我搜索了所有可能的答案来帮助解决我的问题,但我仍然无法将数据插入数据库。我正在使用XAMPP版本3.2.2和Sublime编辑器。
这是我的HTML表单:
<form action="inserting.php" method="post">
First name: <input type="text" name="fname"> <br>
Last name: <input type="text" name="lname">
<input type="submit" name="insert">
</form>
这是PHP(insertion.php)
<?php
$user = 'root';
$pass = '';
$db = 'sample';
$con = mysqli_connect('localhost', $user, $pass, $db);
if($con){
echo 'success!';
}else echo 'not successful';
$sql = "insert into nameinfo (fname, lname) values ($_POST[fname],
$_POST[lname])";
$query = mysqli_query($con,$sql);
if ($query) {
echo 'good';
}else echo 'not good';
?>
当我运行它时,连接成功,但无法插入。请帮忙,谢谢。
答案 0 :(得分:2)
我强烈建议您使用PDO而不是像这样的直接SQL查询,但如果您必须:错误最有可能是$ _POST vars,则需要在它们的值周围加上引号被视为字符串。试试这样: -
<?php
$user = 'root';
$pass = '';
$db = 'sample';
$con = mysqli_connect('localhost', $user, $pass, $db);
if($con){
echo 'success!';
}else {
echo 'not successful';
}
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$sql = "insert into nameinfo (fname, lname) values ('$fname','$lname')";
$query = mysqli_query($con,$sql);
if ($query) {
echo 'good';
} else {
echo 'not good';
}
?>
最后,您应该知道此代码非常容易受到SQL injection
的攻击答案 1 :(得分:1)
而不是
$sql = "insert into nameinfo (fname, lname) values ($_POST[fname],
$_POST[lname])";
使用此代码
$sql = "insert into nameinfo (fname, lname) values ('".$_POST['fname']."',
'".$_POST['lname']."')";
答案 2 :(得分:-5)
首先应该保护数据库的输入;
$fname = mysqli_real_escape_string($con, $_POST['fname']);
$lname = mysqli_real_escape_string($con, $_POST['lname']);
$sql = "INSERT INTO nameinfo (fname, lname) VALUES ('".$fname."', '".$lname."')";
$query = mysqli_query($con, $sql);