我是一名网络开发初学者。这是我第一次尝试连接到 MySQL 数据库。我收到以下语法错误(成功连接到数据库后?)。我知道那里有类似的问题,但我想我一定遗漏了一些具体的问题。感谢您的耐心等待!
错误:您的 SQL 语法有误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“姓名、电子邮件、密码、性别)值(''、''、''、'')'附近使用的正确语法
<?php
$con=mysqli_connect("localhost", "shiftedr_admin", "", "shiftedr_whosthedeeusers");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO Users2 (Full Name, Email, Password, Gender)
VALUES
('$_POST[fullname]','$_POST[email]','$_POST[password]', '$_POST[gender]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
我已经仔细检查了这些值是否与它们在数据库中的位置完全匹配并且区分大小写。 “全名”是它在 Users2 表和我从中调用的 php 中的样子。
我用来提交脚本的 HTML 代码如下:
<div class="reformed-form" style="width: 400px; border-right-color:">
<form method="post" name="accountcreation" id="accountcreation" action="insertnewaccounts.php" style="background-color:#CCFFFF;">
<center><h1 style="position:relative;left:0px;"> Account Creation </h1>
<table>
<tr>
<td align="right"> Full Name: </td>
<td align="left"><input type="text" id="fullname nameerror" name="fullname" min="4" class="spacing" placeholder="Your Full Name"/> </td></tr>
<tr>
<td align="right">Email</td>
<td align="left"><input type="text" id="email" name="email" min="5" placeholder="@" /> </td></tr>
<tr>
<td align="right"> Password </td>
<td align="left"><input type="text" id="Password" name="password" class="spacing" placeholder="Minimum 6 Characters"/> </td></tr>
<tr>
<td align="right"> Confirm Password </td>
<td align="left"><input type="text" id="confirmpassword passworderror" class="spacing" name="pwc" placeholder="Confirm Password"/></td></tr>
<tr>
<td align="right"> Owner's' Gender: </td>
<td align="left"><input type="radio"> Male <input type="radio">Female </td></tr>
</table>
</center>
</dl>
<input type="submit" value="Check" /></center>
</form>
最佳答案
Full Name
中有空格,因此语法无效。如果实际的列名称是“全名”,(哎哟)你需要在它周围加上反引号。
INSERT INTO Users2 (`Full Name`,
您的代码容易受到注入(inject)攻击,并且您使用的是已弃用的 MySQL API。切换到使用 PDO 或 mysqli 的正确参数化查询。
关于php - 第 1(2) 行的 MySQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620162/