这个问题已经在这里有了答案 :
由于在MySQL中使用保留字作为表或列名而导致的语法错误 (1个答案)
25天前关闭。
我在更新包含HTML数据的MySQL数据时遇到了问题,我不断地修复错误;但是,一旦解决了一个错误,就会产生另一个错误。当前错误如下:
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 'desc='Live updates to certain games will also be posted on this website througho' at line 1
我已经进行了将近3天的Stack Overflow清理工作,但没有任何明确的答案。所以我希望有人能找到这个!
这是我的PHP表单代码:
if (isset($_POST['submit'])) {
$WName = mysql_prep($_POST['wname']);
$SName = mysql_prep($_POST['sname']);
$Desc = mysql_prep($_POST['desc']);
$LogoURL = mysql_prep($_POST['logourl']);
$aboutPage = mysql_prep($_POST['aboutpage']);
$query = "UPDATE settings SET name='$WName',subName='$SName',desc='$Desc',logoUrl='$LogoURL',about='$aboutPage'";
// $query = mysql_prep($query);
mysql_query($query) or die(mysql_error());
header("Location: settings.php?=success");
}
mysql_prep()
可以在互联网上找到,也就是在这里:https :
//gist.github.com/ZachMoreno/1504031
这是HTML表单:
<form role="form" action="" method="post">
<!-- text input -->
<div class="form-group">
<label>Website Name</label>
<input type="text" name="wname" class="form-control" placeholder="
<?php echo $row['name']; ?>" value="
<?php echo $row['name']; ?>" />
</div>
<div class="form-group">
<label>Sub Name</label>
<input type="text" name="sname" class="form-control" placeholder="
<?php echo $row['subName']; ?>" value="
<?php echo $row['subName']; ?>" />
</div>
<div class="form-group">
<label>Description</label>
<textarea name="desc" class="form-control" rows="3" placeholder="
<?php echo $row['desc']; ?>" >
<?php echo $row['desc']; ?>
</textarea>
</div>
<div class="form-group">
<label>Logo URL</label>
<input type="text" name="logourl" class="form-control" placeholder="
<?php echo $row['logoUrl']; ?>" value="
<?php echo $row['logoUrl']; ?>" />
</div>
<div class="form-group">
<label>About Page</label>
<textarea class="form-control" name="aboutpage" rows="6" placeholder="
<?php echo $row['about']; ?>">
<?php echo $row['about']; ?>
</textarea>
</div>
<div class="box-footer">
<input type="submit" name="submit" class="btn btn-primary" value="Submit" style="margin-left:-10px;" />
</div>
</form>
非常感谢您能提供的任何帮助,希望能解决这个问题,我的目的是帮助遇到相同/相似问题的未来访客。
简直不敢相信我之前没有看到这个。我在MySQL上遇到的问题是数据库的列名为“ desc”,我最初的想法是它的意思是“描述”,但实际上它与关键字“
descending”冲突。这产生了语法错误。
这是我在MySQL文档中找到的内容。9.3关键字和保留字
:
关键字是在SQL中具有重要意义的单词。某些关键字(例如SELECT,DELETE或BIGINT)已保留,并且需要特殊处理才能用作表名和列名之类的标识符。内置函数的名称也可能如此。
在上面的该Web链接上,您可以看到不应该使用或应包含反斜杠的关键字/保留字的列表(我将不赘述)。
我的解决方案? 不要使用保留字作为标识符!
您可以做的最简单的解决方案就是避免使用这些单词。我通过将标识符更改为“描述”来防止使用保留词“ desc”。
感谢你的帮助!希望这对以后的人们有所帮助。
保留字是 Python 语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名。 Python 包含的保留字可以执行如下命令进行查看: >>> import keyword >>> keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'break',
ECMA-262 描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是 ECMAScript的全部关键字(带*号上标的是第 5 版新增的关键字): ECMA-262 还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字。以下是 ECMA
问题内容: 保留哪些JavaScript关键字(函数名称,变量等)? 问题答案: 其中包含JavaScript中所有保留的关键字,专门针对那些当下保持诚实,而不仅仅是尝试得分的人:
问题内容: 我有一些正在使用Gson反序列化的JSON。 我的问题是这是Java关键字,那么我该如何在类中创建与JSON中的字段相关的字段? 问题答案: 您可以使用gson的字段命名支持为字段使用其他名称。
问题内容: 枚举大小写是否可以使用保留关键字? 例如: 在其他语言中,这可以通过以某种方式转义关键字来实现,例如在scala中,我们使用反引号,例如 尽管是保留关键字,但仍可以用作标识符。 迅速有类似的东西吗? 问题答案: 从《 Swift语言指南》(“ 命名常量和变量”部分) 如果需要为常量或变量提供与保留的Swift关键字相同的名称,则在使用该关键字作为名称时,请在关键字前后加上反斜线(`)。
问题内容: 我刚刚s在以下lambda表达式中替换为_: Eclipse编译器说: ‘_’不应用作标识符,因为它是源级别1.8以后的保留关键字。 我没有在JLS§3.9词法结构/关键字中找到任何解释。 问题答案: 看的地方是JLS§15.27.1。Lambda参数 如果lambda参数具有名称_(即单个下划线字符),则是编译时错误。 不建议在任何上下文中使用变量名_。Java编程语言的未来版本可能