【问题标题】:syntax error in mysql with php using inner join [closed]mysql中的语法错误与php使用内部连接[关闭]
【发布时间】:2013-05-13 15:42:31
【问题描述】:

我有一个带有内部连接的选择查询我在 phpmyadmin 中尝试它工作正常

但是当我在浏览器中尝试它时,它会显示此错误消息:

您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“SELECT s.specialization_name FROM user u INNER JO”附近使用正确的语法

查询是:

elseif($_POST['listbyq']=="by_specialization")

   {
      $querySrting="SELECT s.specialization_name FROM user u 
                             INNER JOIN specialization s 
                                         ON u.specialization=s.specialization_id";

      $result = mysql_query($querySrting)  or die("there is an error in this query");
      $queryMSG="showing members with specs";

【问题讨论】:

  • 不要使用 deprecated mysql_* 扩展新代码,使用 PDOmysqli_*i 代表改进)...及以上else: 不要使用保留关键字
  • 考虑到您遇到 MySQL 错误,但您的 or die() 是自定义消息,您是否向我们展示了正确的代码?
  • 只是一点点,但不推荐使用 mysql_query,您应该改用 mysqli。这里有一个很棒的工具可以自动转换现有代码:wikis.oracle.com/display/mysql/Converting+to+MySQLi
  • 在用户表和其他表之前和之后的表名中使用`

标签: php mysql inner-join


【解决方案1】:

由于user 不是保留字,很可能是外来字符导致错误(位于INNER JO 附近)。

【讨论】:

    【解决方案2】:

    试试吧:

    $querySrting="SELECT s.specialization_name FROM user u INNER JOIN specialization s ON u.specialization=s.specialization_id";
    

    【讨论】:

    • 我确实将表名从 user 更改为 members,但系统仍然显示 msg 错误,我使用了您的答案 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“SELECT s.specialization_name FROM members u INNER JOIN specialization s ON u.spe”附近使用正确的语法
    【解决方案3】:

    我在fiddle 中尝试过,似乎工作正常。有时有效的一件事是删除所有空格并再次写入(其中可能有一个不可显示的字符会弄乱查询)。另一件事,你把它拼写为“Srting”,读起来像是未来的麻烦。

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 2015-09-21
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多