-1

我要疯了,这个片段中的错误在哪里?

<?php
include('db.php');
switch ($_REQUEST['tab']) {
  case 'categorie':
    $sql = mysql_query("SELECT * FROM categorie");
    echo "INSERT INTO categorie ( id, nome, free, pos ) VALUES " ;
    $a=0;
    while($tmp = mysql_fetch_array($sql))
    {
      if($a!=0)
        echo ",";
      echo "(".$tmp['id'].", '".$tmp['nome']."', ".$tmp['free'].", ".$tmp['pos'].")";
      $a=1;
    }
    break;
  case 'articoli':
    $sql = mysql_query("SELECT * FROM articoli");
    echo "INSERT INTO articoli ( id, titolo, testo, sottocategoria, free, pos ) VALUES " ;
    $a=0;
    while($tmp = mysql_fetch_array($sql))
    {
      if($a!=0)
        echo ",";
      echo "(".$tmp['id'].", '".$tmp['titolo']."', '".$tmp['testo']."', ".$tmp['sottocategoria'].", ".$tmp['free'].", ".$tmp['pos'].")";
      $a=1;
    }     
    break;
  case 'sottocategorie':
    $sql = mysql_query("SELECT * FROM sottocategorie");
    echo "INSERT INTO sottocategorie ( id, nome, categoria, free, pos ) VALUES " ;
    $a=0;
    while($tmp = mysql_fetch_array($sql))
    {
      if($a!=0)
        echo ",";
      echo "(".$tmp['id'].", '".$tmp['nome']."', ".$tmp['categoria'].", ".$tmp['free'].", ".$tmp['pos'].")";
      $a=1;
    }
    break;
}
?>

说附近有语法错误,

我发布了整个代码.................................................. .....................................

4

1 回答 1

1

编辑:在您在下面澄清之后,问题不在于您的 PHP,而在于执行 PHP 脚本的输出

您的 PHP 将生成类似于以下内容的输出;

INSERT INTO A (a,b,c) VALUES (1,2,3),(4,5,6)   // <-- note the missing semicolon
INSERT INTO B (a,b,c) VALUES (1,2,3),(4,5,6)   // <-- note the missing semicolon

添加那些缺少的分号,您应该可以正常工作了。

----原始答案----

while($tmp = mysql_fetch_array($Query))
{
   ...
}
break;

你有一个break外部循环,这是一个语法错误(除非它嵌套在另一个循环内)。

此外,您的 SQL 从名为 的表中进行选择table,这是 MySQL 的保留关键字。如果您确实有一个名为 的表table,则需要将查询更改为;

$Query = mysql_query("SELECT * FROM `table`");
于 2013-07-10T08:57:05.657 回答