gpt4 book ai didi

php - 为什么数据不存储在我的数据库中?错误提示 "You have an error in your SQL syntax;..."

转载 作者:行者123 更新时间:2023-11-29 08:34:17 24 4
gpt4 key购买 nike

抱歉,我是 php 新手,请耐心等待。我正在创建一个用户界面,当我注册时,它表示我已注册,但它不会将数据存储到数据库中。另外,每次我注册时,都会出现错误“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行'testing101'''附近使用的正确语法。”有人可以帮助我吗!

   <?PHP

$uname = "";
$pword = "";
$errorMessage = "";
$num_rows = 0;

function quote_smart($value, $handle) {

if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}

if (!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value, $handle) . "'";
}
return $value;
}

if ($_SERVER['REQUEST_METHOD'] == 'POST'){


$uname = $_POST['username'];
$pword = $_POST['password'];

$uname = htmlspecialchars($uname);
$pword = htmlspecialchars($pword);


$uLength = strlen($uname);
$pLength = strlen($pword);

if ($uLength >= 10 && $uLength <= 20) {
$errorMessage = "";
}
else {
$errorMessage = $errorMessage . "Username must be between 10 and 20 characters" . "<BR>";
}

if ($pLength >= 8 && $pLength <= 16) {
$errorMessage = "";
}
else {
$errorMessage = $errorMessage . "Password must be between 8 and 16 characters" . "<BR>";
}


if ($errorMessage == "") {

$user_name = "root";
$pass_word = "";
$database = "user authentication";
$server = "127.0.0.1";

$db_handle = mysql_connect($server, $user_name, $pass_word);
$db_found = mysql_select_db($database, $db_handle);

if ($db_found) {

$uname = quote_smart($uname, $db_handle);
$pword = quote_smart($pword, $db_handle);




$SQL = "SELECT * FROM login WHERE USERNAME = '".$uname."'";
$result = mysql_query($SQL)or die(mysql_error());
$num_rows = mysql_num_rows($result);

if ($num_rows > 0) {
$errorMessage = "Username already taken";
}

else {


$SQL = "INSERT INTO login (USERNAME, PASSWORD) VALUES ('{$uname}', MD5('{$pword}'))";
$result = mysql_query($SQL);

mysql_close($db_handle);

//=================================================================================
// START THE SESSION AND PUT SOMETHING INTO THE SESSION VARIABLE CALLED login
// SEND USER TO A DIFFERENT PAGE AFTER SIGN UP
//=================================================================================

session_start();
$_SESSION['login'] = "1";

header ("Location: page1.php");

}

}
else {
$errorMessage = "Database Not Found";
}




}

}


?>

<html>
<head>
<title>Basic Login Script</title>


</head>
<body>


<FORM NAME ="form1" METHOD ="POST" ACTION ="signup.php">

Username: <INPUT TYPE = 'TEXT' Name ='username' value="<?PHP print $uname;?>" maxlength="20">
Password: <INPUT TYPE = 'TEXT' Name ='password' value="<?PHP print $pword;?>" maxlength="16">

<P>
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Register">


</FORM>
<P>

<?PHP print $errorMessage;?>

</body>
</html>

最佳答案

您对文本进行双引号:

在您的 smart_quote() 函数中添加一组引号。
在您的实际查询中添加 1 组引号,因此您正在生成:

INSERT .... VALUES (''$uname'', ''$password'');

如果您在处理查询调用时遇到了正确的错误,您就会看到以下内容:

$result = mysql_query($sql) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^

关于php - 为什么数据不存储在我的数据库中?错误提示 "You have an error in your SQL syntax;...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com