插入数据库时​​出错

时间:2016-04-25 18:50:49

标签: php mysql

  

解析错误:语法错误,第19行Z:\ home \ ser.ser \ www \ sign_up.php中的意外T_VARIABLE

我也遇到$q = mysql_query("SELECT * FROM users WHERE (login="$login")");

错误

请帮助。

<?php
        include 'mysql_connect.php';

        $login = $_POST['login'];
        $password = $_POST['password'];
        $b_arr['b_dd'] = $_POST['B_DD'];
        $b_arr['b_mm'] = $_POST['B_MM'];
        $b_arr['b_yy'] = $_POST['B_YY'];
        $b_date = $b_arr['b_yy'].$$b_arr['b_mm'].$b_arr['b_dd'];
        if (!isUserExist($login)) {
            reg($login, $password, $b_date);
        } else {
            echo 'This user is exist !';
        }
        function reg($login, $password, $b_date) {
           // NEXT LINE ERROR
            $query = mysql_query("INSERT INTO users VALUES ("$login", "$password", "$b_date")");
           // END ERROR
        }
        function isUserExist($login) {
            $q = mysql_query("SELECT * FROM users WHERE (login="$login")");
            $result = mysql_fetch_array($q);
            if ($result) {
                return true;
            }
        }
    ?>

2 个答案:

答案 0 :(得分:0)

连接中有错误。 请看这里:https://www.diffnow.com/?report=jgv1m

<?php
        include 'mysql_connect.php';

        $login = $_POST['login'];
        $password = $_POST['password'];
        $b_arr['b_dd'] = $_POST['B_DD'];
        $b_arr['b_mm'] = $_POST['B_MM'];
        $b_arr['b_yy'] = $_POST['B_YY'];
        $b_date = $b_arr['b_yy'].$$b_arr['b_mm'].$b_arr['b_dd'];
        if (!isUserExist($login)) {
            reg($login, $password, $b_date);
        } else {
            echo 'This user is exist !';
        }
        function reg($login, $password, $b_date) {
// NEXT LINE ERROR
            $query = mysql_query("INSERT INTO users VALUES ('".$login."', '".$password."', '".$b_date."')");
// END ERROR
        }
        function isUserExist($login) {
            $q = mysql_query("SELECT * FROM users WHERE (login='".$login."')");
            $result = mysql_fetch_array($q);
            if ($result) {
                return true;
            }
        }
    ?>

答案 1 :(得分:0)

警告:此代码很危险。请阅读SQL Injection以及为什么您的代码存在问题。简而言之,任何放入数据库的内容都必须进行清理

现在,更多问题:

您没有正确处理字符串。如果您希望使用这种危险的查询方法,则需要将值连接成一个字符串。要将变量添加到字符串,请使用.运算符。因此,要修复此行,您需要使用以下内容:

$qry_str = "INSERT INTO users VALUES ('" . $login . "', '" . $password . "', '" . $b_date . "')";
$query = mysql_query($qry_str);

注意:我将其分成两行以提高可读性,而isUserExist()函数也有同样的问题。