php - php 中的 mysql 语法错误,输入 phpmyadmin 时工作正常

标签 php mysql sql for-loop phpmyadmin

我正在尝试使用在 for 循环中递增的数组来查询我的数据库。由于某种原因,无论我做什么,这都不起作用,

我收到错误:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1"

当在 PHPMyAdmin 中查询数据库时,一切都很好,所以我假设 for 循环中的某些东西把它搞砸了。有什么想法吗?

我的代码:-

 <?php
$submitclick=$_GET["submitclick"];
if($submitclick==1)
{
require('json.php');
$selec=$_GET["selec"];
$selec=str_replace("'","",$selec);
error_reporting(E_ALL);
mysql_connect("localhost", "seamus", "password") or
    die("Could not connect: " . mysql_error());
mysql_select_db("seamus") or die("No such database");
$sql1 = sprintf("SELECT event FROM attends WHERE student = '%s'",$selec);
$result1 = mysql_query($sql1)
  or die(mysql_error());

while ($row1 = mysql_fetch_array($result1))
 {
  $eve[] = $row1['event'];
 }

for($f=0;$f<count($eve);$f++)
{
$sql = sprintf("SELECT event.id, teaches.staff, day, start, duration, room FROM event JOIN module ON (event.module=module.id) JOIN isin ON (event.id=isin.event) JOIN teaches ON (event.id=teaches.event) JOIN attends ON (event.id=attends.event) WHERE event.id = '%s')",$eve[$f]);
$result = mysql_query($sql)
  or die(mysql_error());  
 $i=0;

while ($row = mysql_fetch_array($result))
    {
     $key =$row['day'].$row['start'];
     $event[$key] = $row['id'];
     $room[$row['id']] = $row['room'];
     $lect[$row['id']] = $row['staff'];
   $time[$i]= $row['duration'];
   $i++;
    }
}     
   $i=0;

最佳答案

这里有一个额外的括号,就在 '%s' 之后:

... WHERE event.id = '%s')",$eve[$f]);

只需将其删除即可工作。

关于php - php 中的 mysql 语法错误,输入 phpmyadmin 时工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115656/

相关文章:

php - 显示每条生产线的产品描述成本

Mysql Select 语句

php - 使用CodeIgniter框架。如何 get_where 但将结果限制为过去 12 小时?

sql - 如何合并两个具有不同列的表

sql - 在数据库的所有表、行和列中搜索字符串

mysql - 按值计算多行的数学 SUM

php - 使用 php 进行分面搜索

php - 仅允许来自某些网站的 iframe

javascript - Laravel 5.2 请求返回 null AJAX

php - 将更新的行发送到表格底部