无法将数据发送到数据库

时间:2017-09-19 02:34:43

标签: php html sql

如何解决此错误?

  

您的SQL语法有错误;查看与您的MariaDB服务器版本相对应的手册,以便在''用户'通过')VALUES('')附近使用正确的语法'')'在第1行

Error screenshot

<?php 
    $con = mysql_connect('localhost','root','') or die ('can not connect to server'.$conn->connect_error);
if($con)
{
    mysql_select_db('mydb',$con) or die ('can not seletc the database'.$conn->connect_error);
}
$error ='';
if(isset($_POST['login']))
{
    $username = $_POST['username'];
    $password = $_POST['password'];     

    mysql_query("INSERT INTO tblogin('username','password') VALUES('$username','$password')");
    $id = mysql_insert_id();
    if($id > 0)
    {
        $error .= "Register Successfully";
    }
    else
    {
        $error.="Fail To Register<br>".mysql_error();
    }

}
?>
<html>
<head>
<meta charset="utf-8">
<title>Login</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
</head>
<body>

<div class="row">
    <div class="col-md-5"></div>
    <div class="col-md-6">
        <form action="" method="post">
        <h2>POS Register</h2>
        <h5 style="color: red;"> <?php if(isset($error)){echo $error;} ?> </h5>   
            <table>
                <tr>
                    <td>
                        <label>User Name</label>
                        <input type="text" name="username" class="form-control">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Password</label>
                        <input type="password" name="password" class="form-control">
                    </td>
                </tr>
                <tr>
                    <td>
                         <input type="submit" name="login" class="btn btn-primary" value="Register">
                         <a href="login.php">Back To Login</a>
                    </td>
                </tr>
            </table>    
        </form>
    </div>
    <div class="col-md-3"></div>
</div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

在我关注的问题上,建议使用mysqli代替mysql,因为它已被弃用,您可以在此处了解更多信息: - MySQL vs MySQLi when using PHP

对于您的问题,答案是:

   $mysql_query = "INSERT INTO tblogin(username,password) values ('$username','$password')";
   $result = mysql_query($mysql_query);

检测是否已成功插入:

if($result)
{
echo "Success";

}
else
{
echo "Error";

}

答案 1 :(得分:0)

改变这一点,

mysql_query("INSERT INTO tblogin('username','password') VALUES('$username','$password')");

到此

mysql_query($con, "INSERT INTO tblogin(username,password) VALUES('$username','$password')");

mysql_query($con, "INSERT INTO tblogin(username,password) VALUES('".$username."','".$password."')");

上面会运行查询,但如果你喜欢这样,

$results = mysql_query($con, "INSERT INTO tblogin(username,password) VALUES('$username','$password')");

您可以使用if ... else这样查看是否成功执行了查询,

it($results){
  echo "Query execution done";
}else{
  echo "Query execution didn't happen";
}

<强> IMPORTAN 最好放弃使用mysql,因为它已被弃用,而在新的PHP版本中它已被删除,因此最好在mysqli_PDO上取件。

mysqli_mysql_的改进版本,它与mysql非常相似,但对SQL注入安全威胁具有更高的安全性。

PDO代表PHP文档对象是另一个接口,非常适合与PHP和数据库一起使用。就个人而言,我喜欢PDO它的普遍性不像mysqli_这对MySQL来说是男性化的,对我来说,在PDO中预备语句要容易得多。

您可以进行自己的研究,并使开关不再使用mysql