gpt4 book ai didi

php - 无法定位php中的sql错误

转载 作者:行者123 更新时间:2023-11-30 00:03:46 25 4
gpt4 key购买 nike

我收到的错误消息

Parse error: syntax error, unexpected 'INTO' (T_STRING) in D:\ServerFolders\Web\tokens\insert.php on line 17

第 17 行

$sql= INSERT INTO users(Forename, Surname, Email, Username, Password, DOB) 

完整代码

    <?php
//Connect to DB
$con=mysql_connect(localhost,root, "",APROJECT) or die (mysql_error());
// Check connection
if (mysql_connect_errno()) {
echo "Failed to connect to MySQL: " . mysql_connect_error();
}

// escape variables for security
$Forename = mysql_real_escape_string($con, $_POST['Forename']);
$Surname = mysql_real_escape_string($con, $_POST['Surname']);
$Email = mysql_real_escape_string($con, $_POST['Email']);
$Username = mysql_real_escape_string($con, $_POST['Username']);
$Password = mysql_real_escape_string($con, $_POST['Password']);
$DOB = mysql_real_escape_string($con, $_POST['DOB']);
//SQL query to add data to DB
$sql= INSERT INTO users(Forename, Surname, Email, Username, Password, DOB)
VALUES ($Forename, $Surname, $Email, $Username, $Password, $DOB);

if (!mysql_query($con,$sql)) {
die('Error: ' . mysql_error($con));
}
echo "1 record added";

mysql_close($con);
?>

最佳答案

首先,不再支持 mysql_*,建议使用 PDO 或 mysqli_* 代替。

您应该将查询放入引号中;

$sql= "INSERT INTO users(Forename, Surname, Email, Username, Password, DOB) 
VALUES ($Forename, $Surname, $Email, $Username, $Password, $DOB)";

这可能行不通!因为您必须将值放入单引号中。所以更好的方法是使用参数化查询。

仅这一次我建议使用 sprintf() 函数。

$sql= sprintf("INSERT INTO users(Forename, Surname, Email, Username, Password, DOB) 
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')", $Forename, $Surname, $Email, $Username, $Password, $DOB);

关于php - 无法定位php中的sql错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24781221/

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