PHP MySQL无法使用“INSERT INTO”[重复]

PHP MySQL Cannot use "INSERT INTO" [duplicate]

提问人:Dillon Burke 提问时间:4/19/2016 最后编辑:Uttam Kumar RoyDillon Burke 更新时间:4/19/2016 访问量:64

问:

我创建了一个名为 Register.php 的网页,它应该将数据插入我的数据库。这样做的问题是注册页面可以正常工作,但是当我尝试登录时,信息没有添加到我的数据库中,是否有任何我做错了什么而找不到?

<?php
    echo "<h1>Register</h1>";
    $submit = $_POST['submit'];
    //form data
    $FullName = strip_tags($_POST['FullName']);
    $UserName = strip_tags($_POST['UserName']);
    $Password = strip_tags($_POST['Password']);
    $RepeatPassword = strip_tags($_POST['RepeatPassword']);
    if ($submit)
    {   
        //open database
        $connect = mysql_connect("localhost","root","");
        mysql_select_db("cs266db_db1");

        $namecheck = mysql_query("SELECT UserName FROM user_ID WHERE UserName='$UserName'");
        $count = mysql_num_rows($namecheck);
        if ($count!=0)
        {
            die("UserName already taken");
        }       
        //check for existence
        if($FullName&&$UserName&&$Password&&$RepeatPassword)
        {        
            //check password and repeat password match
            if($Password==$RepeatPassword)
            {         
                //check length of username and fullname
                if (strlen($UserName) > 25 || strlen($FullName)>25)
                {
                    echo "Length of username or fullname is over 25 characters!";
                }
                else {
                   //check password
                   if(strlen($Password)>25 || strlen($Password) < 6) {
                     echo "Password must be between 6 and 25 characters";
                   } else {              
                        //encrypt password
                        $Password = md5($Password);
                        $RepeatPassword = md5($RepeatPassword);                              
                        $queryreg = mysql_query("INSERT INTO user_id VALUES (FullName='".$FullName."',UserName='".$UserName."',Password='".$Password."'");             
                    }
                   die("You have been registered <a href='index1.php'> Return to Login Page </a>");          
                }           
            }
            else{
                echo "Your passwords do not match";
            }        
        } else {
           echo "Please fill in all fields!";    
        }  
    }
?>

<html>    
<form action="register.php" method="POST">
<table>
    <tr>
        <td>
            Your full name:
        </td>
        <td>
            <input type="text" name="FullName" value="<?php echo $FullName ?>">
        </td>
    </tr>
    <tr>
        <td>
            Choose a username:
        </td>
        <td>
            <input type="text" name="UserName" value="<?php echo $UserName ?>"> 
        </td>
    </tr>
    <tr>
        <td>
            Choose a password:
        </td>
        <td>
            <input type="password" name="Password">
        </td>
    </tr>
    <tr>
        <td>
            Repeat your password:
        </td>
        <td>
            <input type="password" name="RepeatPassword">
        </td>
    </tr>
</table>        
  <br>
   <input type="submit" name="submit" value="Register">                
</form>    
</html>

我也收到一个错误(我在 netbeans 上运行):

注意:未定义索引:提交 C:\Xampp\htdocs\Resume_DB\register.php 第 4 行 注意:未定义 索引:第 7 行 C:\Xampp\htdocs\Resume_DB\register 中的 FullName.php 注意:未定义索引:UserName C:\Xampp\htdocs\Resume_DB\register.php 第 8 行 注意:未定义 index:第 9 行 C:\Xampp\htdocs\Resume_DB\register 中的密码.php 注意:未定义索引:RepeatPassword C:\Xampp\htdocs\Resume_DB\register.php第 10 行

这与我的插入问题有关吗?如果是这样,你能帮忙吗!拜托,谢谢!

php mysql 插入 用户注册 未定义索引

评论

6赞 tadman 4/19/2016
警告:如果您只是在学习 PHP,请不要学习过时的 mysql_query 界面。这很糟糕,已在 PHP 7 中删除。像 PDO 这样的替代品并不难学,而像 PHP The Right Way 这样的指南有助于解释最佳实践。您的用户参数正确转义,并且您在此处存在严重的 SQL 注入错误
5赞 tadman 4/19/2016
警告:编写自己的访问控制层并不容易,并且有很多机会会严重错误。请不要编写自己的身份验证系统,因为任何现代开发框架(如 Laravel)都内置了强大的身份验证系统。绝对至少遵循建议的安全最佳实践,切勿将密码存储为纯文本。
0赞 larsAnders 4/19/2016
插入语法不正确。
3赞 tadman 4/19/2016
这不起作用是件好事,因为如果它有效,它会与你的预期完全相反:它不是用密码将人们锁定在您的系统之外,而是让任何人完全接管您的系统并从您的数据库中获取他们想要的任何东西。

答:

0赞 zion ben yacov 4/19/2016 #1

我不认为您运行插入的方式在 MySql 中甚至无效, 我刚刚在wamp上的MySql上尝试过,该行没有返回错误,但插入的所有值都是NULL 我说的是这条线

insert into tmp_table values (`field_1`='value_1', `field_2`='value_2', `field_3`='value_3' ...)

您的数据库中是否有空行或根本没有行?