我的插入代码不起作用

时间:2017-07-22 04:24:45

标签: php mysql mysqli

我是网络开发的新手,我还在练习。我搜索了所有可能的答案来帮助解决我的问题,但我仍然无法将数据插入数据库。我正在使用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';

?>

当我运行它时,连接成功,但无法插入。请帮忙,谢谢。

3 个答案:

答案 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);