【问题标题】:error in syntax语法错误
【发布时间】:2011-09-16 02:37:12
【问题描述】:
$sql="SELECT * FROM 'image_upload' where uid='$uid' ";

我写了这个查询,它显示错误:-

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''image_upload' where uid=''' 附近使用正确的语法

你能纠正一下吗..

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    这将起作用:

    $sql = "SELECT * FROM `image_upload` where uid='$uid' ";
    

    【讨论】:

    • 是的,我的 uid 不是 char 或 varchar,它是 bigint,当我按照您的建议输入查询时,它在我的数据库中显示 uid 0
    • 你确定 $uid 存储了你想要的号码???或者可能是之前插入 uid 列的大小小于您的数字的长度。
    【解决方案2】:

    对表名使用反引号:

    SELECT * FROM `image_upload` ...
    

    【讨论】:

      【解决方案3】:

      您应该使用反引号 (`) 而不是单引号 (')。事实上,在这种情况下你不应该使用任何一种,因为它不是必需的:

      $sql = "SELECT * FROM image_upload where uid='$uid'";
      

      只有当你的表名中有有趣的字符时才需要反引号,否则会惹恼 SQL 解析器(例如空格)。

      并确保您的 uid 列是文本列(如 charvarchar) - 否则您不应将 $uid 用单引号括起来。

      【讨论】:

        【解决方案4】:

        $sql="SELECT * FROM image_upload where uid='$uid'";

        【讨论】:

          【解决方案5】:

          你能去掉单引号,然后再试一次吗?

          SELECT * FROM image_upload where uid='$uid'
          

          【讨论】:

            【解决方案6】:

            试试这个:

            $sql="SELECT * FROM image_upload where uid='".$uid."'";
            

            【讨论】:

              【解决方案7】:
              $sql="SELECT * FROM `image_upload` where uid='$uid' ";
              

              你已经被纠正了;)

              您需要防止 SQL 注入。请参阅this thread

              【讨论】:

                【解决方案8】:

                删除 image_upload 中的单引号 查询前 回声$uid; 那你就知道答案了

                【讨论】:

                  猜你喜欢
                  • 2021-08-21
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-09-09
                  • 2019-05-10
                  相关资源
                  最近更新 更多