错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用
Posted
技术标签:
【中文标题】错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用【英文标题】:Error: you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use 【发布时间】:2015-09-27 14:10:03 【问题描述】:错误似乎是这样的:
注意:未定义索引:第 32 行 C:\wamp\www\job.php 中的 JobID 第 32 行是:$JobID=$_GET['JobID'];
我试图解决这个问题 10 天,阅读不同作者的不同书籍。但是我还是不知道哪里出错了。
<?php
if(isset($_POST["submit"])) //this is form action
$result3 = mysql_query("SELECT * FROM members where user='$user'");
while($row3 = mysql_fetch_array($result3))
$name=$row3['name'];
$user=$row3['user'];
$number=$row3['number'];
$numrows=mysql_num_rows($query);
if($numrows==0)
$sql="INSERT INTO applicant (user,name,number,) VALUES('$user','$name','$number')";
$result=mysql_query($sql);
if($result)
header('Location: thankyou2.php');
else
echo "Failure!";
else
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "abcdef";
$prefix = "";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $bd) or die("Could not select database");
$JobID=$_GET['JobID'];
$job_sql="SELECT * FROM job WHERE JobID=$JobID";
$job_query = mysql_query($job_sql) or die(mysql_error());
$rsjob=mysql_fetch_assoc($job_query);
;
?>
<b><center><table class="bordered">
//Data will fetch in this table by GET method
<thead>
<?php echo $rsjob['jobname'];?></h1></font>
<tr>
<th><font face="Script MT">Description</th>
<th><font face="Script MT">Details</th>
</tr>
</thead>
<tr>
<td>Name</td>
<td><?php echo $rsjob['jobname'];?></td>
</tr>
<tr>
<td>Type</a></td>
<td><?php echo $rsjob['type'];?></td>
</tr>
</table><br>
<?php
if ($loggedin)
echo
<<<_END
<form action="job.php" method="POST" name="jobapply">
<input type="checkbox" name="termscondition" required/> I have read all the
<a href="termscondition.html">Terms and Condition</a><br>
<br><input type="submit" value="Apply"></form>
_END;
else
echo '<center> please sign up and/or log in to <strong>Apply</strong>. </center>';
;
?>
【问题讨论】:
您是否在 URI 中添加了 ?JobID=1234? check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1的可能重复 您将发布多少个相同的问题? ***.com/questions/31240873/…努力学习JobID='$JobID'
应该解决查询错误并添加检查。
你的代码有很多SQL注入漏洞,如果你把这段代码放到网上很可能会被利用。您可以通过将包含数字的字符串转换为整数或使用mysql_real_escape_string()
来解决此问题,但最好切换到支持参数化的数据库库。无论如何,您目前使用的库现在已被弃用。
【参考方案1】:
$JobID=$_GET['JobID'];
这是勇敢的。您应该检查是否设置了 get-paramenter JobID
。如果没有,请不要执行其余代码。
除此之外:您应该将所有获取参数设为小写。混合起来也可能是个问题。
if(isset($_GET['jobid']))
// your code her
else
// Show some error to the user or try to deal with the missing parameter
【讨论】:
【参考方案2】:使用
$JobID=$_GET['jobid'];
而不是
$JobID=$_GET['JobID'];
【讨论】:
您好先生,我也是用小写字母写的。但没有结果。 请检查 if(isset($_GET['jobid'])) // 你的代码她 else // 向用户显示一些错误或尝试处理缺少的参数以上是关于错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用的主要内容,如果未能解决你的问题,请参考以下文章
SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ')' 附近使用的正确语法
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在 '0 附近使用的正确语法
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法