【问题标题】:Syntax error with MariaDB Involving Server VersionMariaDB 涉及服务器版本的语法错误
【发布时间】:2019-10-13 07:29:44
【问题描述】:

我已经运行 LiveSite 网站快一年了,没有任何问题,但在过去 1-2 周内出现此错误:

错误:查询失败。

您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 14 行的“行、列、信息”附近使用的正确语法

我已提交支持票,但他们提供了帮助。

我在 phpMyAdmin 中的数据库设置中查看了我的 cPanel 设置,但真的不知道在哪里查看。

我正在使用(即我使用的网络托管公司):

数据库服务器

  • 服务器:通过 UNIX 套接字的本地主机

  • 服务器类型:MariaDB

  • 服务器连接:未使用 SSL 

  • 服务器版本:10.3.14-MariaDB-cll-lve - MariaDB 服务器

  • 协议版本:10

  • 用户:edmbeats@localhost

  • 服务器字符集:UTF-8 Unicode (utf8)

网络服务器

  • cpsrvd 11.78.0.24

  • 数据库客户端版本:libmysql - 5.1.73

  • PHP 扩展:mysqli、curl、mbstring

  • PHP版本:7.2.7

phpMyAdmin

  • 版本信息:4.8.3

没什么,需要知道去哪里解决这个问题。我已经 8 个月没有在网站上更改任何内容,没有更新,也没有更改设置。我不确定托管公司是否更新了他们的数据库程序,并导致了这种情况。有一个更新版本的 LiveSite 2019 版本比我使用的 2017 版本更新,但 LiveSite 不支持在托管平台内自动更新 2017 版本。

不适用

【问题讨论】:

  • 10.3.14 的发布日期是 2019-04-02。所以在过去的 8 个月里肯定有更新。检查 MariaDB 是否引入了新的(保留的)关键字,例如 ROWS
  • 请考虑使用代码块或其他格式化工具使您的问题更易于阅读。

标签: mysql syntax-error mariadb


【解决方案1】:

https://mariadb.com/kb/en/library/reserved-words/ 表示关键字 ROWS 在 MariaDB 10.2.4 中作为保留字添加。

您可以在 SQL 语句中使用保留字,方法是用反引号分隔它们:

... `rows`, cols, informatio...

因此,您必须编辑运行该查询的应用程序代码,这意味着您必须准确找出导致错误的查询。

最好避免在表和列标识符中使用保留字。如果 LiveSite 代码使用保留字,则应告知他们需要更正此问题,否则在与保留字冲突的表和列标识符周围加上反引号。我建议您联系他们提出支持请求。

【讨论】:

  • 是否有一种简单的方法可以确定我需要向哪个文件添加反引号?我查看了 config、init、settings、welcome、class、css 文件,但找不到有问题的语句....
  • SQL 语句来自您的代码文件,而不是 HTML 或 CSS 文件。但是,如果您使用一些为您生成 SQL 的框架,SQL 也可能不会按字面意思出现在您的代码文件中。我对 LiveSite 一无所知。您可能需要联系 LiveSite 支持。
猜你喜欢
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
  • 2019-01-11
  • 1970-01-01
相关资源
最近更新 更多