quote('#__csvi_available_fi-6ren">
gpt4 book ai didi

Mysql处理单引号冲突

转载 作者:行者123 更新时间:2023-12-01 00:05:35 25 4
gpt4 key购买 nike

我正在使用 joomla 开发网站,但我遇到了一个奇怪的错误。我在以下代码中有语法错误:

$q = "TRUNCATE TABLE ".$db->quote('#__csvi_available_fields');

在运行时给出输出:

TRUNCATE TABLE 'erx_csvi_available_fields'

但是mysql显示错误:

JDatabaseMySQL::query: 1064 - 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 ''#__csvi_available_fields'' at line 1 SQL=TRUNCATE TABLE '#__csvi_available_fields'

奇怪的是,当我不带引号运行时,它运行正常:

TRUNCATE TABLE erx_csvi_available_fields <-- works without problem

知道这里出了什么问题吗?

最佳答案

正如其他人所说,添加了错误的引号。

当使用 Joomla 的 JDatabase 提供引用时,您可以调用两个不同的函数,一个用于值,另一个用于数据库、表或列/字段名称。

要使示例行正常工作,您需要按如下方式使用 quoteName():

$q = "TRUNCATE TABLE ".$db->quoteName('#__csvi_available_fields');

$db->quote() 用于引用 SQL 中使用的值。

您可以通读 /libraries/joomla/database/database.php 以了解抽象应该如何工作。

关于Mysql处理单引号冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12898849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com