medoo select 术语不正确
medoo select term doesn't work correct
我打开了调试模式并得到了这个
mySQL 字符串:
SELECT "dmd_key","id"
FROM "keys"
WHERE "dmd_key" = '140ec37b981042c8549b07d6d4589295'
AND "website" = 'test.de'
但是那个字符串对我不起作用。我收到一条数据库错误消息。 (标准消息..)
如果我将字符串更改为:
SELECT `id`,`dmd_key`
FROM `keys`
WHERE `dmd_key` = '140ec37b981042c8549b07d6d4589295'
AND `website` = 'test.de'
我得到了结果。
我想我必须更改设置中的某些内容,但我不知道是什么。
我是第一次和medoo在一起,我觉得medoo不爱我...
感谢您的帮助。
这似乎是 Medoo 中的一个问题。你不是唯一看到这个问题的人(1,). According to this bug report,Medoo 创建 mySQL 代码,用双引号转义 table 名称,然后更改 mySQL 选项以满足它:
case 'mysql':
// Make MySQL using standard quoted identifier
$commands[] = 'SET SQL_MODE=ANSI_QUOTES';
此选项似乎在您的虚拟主机上被禁用,导致 Medoo 在您的环境中无法使用。
很难用语言来形容这有多疯狂。框架应该生成与其运行的数据库兼容的 SQL。我会切换到不同的框架。
SET SQL_MODE=ANSI_QUOTES
如果MySQL重启就失效了,需要重新执行
或者您可以转到 medoo.php 并更新函数以使用反引号,如下所示:
protected function table_quote($table)
{
return '`' . $this->prefix . $table . '`';
}
protected function column_quote($string)
{
preg_match('/(\(JSON\)\s*|^#)?([a-zA-Z0-9_]*)\.([a-zA-Z0-9_]*)/', $string, $column_match);
if (isset($column_match[ 2 ], $column_match[ 3 ]))
{
return '`' . $this->prefix . $column_match[ 2 ] . '`.`' . $column_match[ 3 ] . '`';
}
return '`' . $string . '`';
}
我打开了调试模式并得到了这个
mySQL 字符串:
SELECT "dmd_key","id"
FROM "keys"
WHERE "dmd_key" = '140ec37b981042c8549b07d6d4589295'
AND "website" = 'test.de'
但是那个字符串对我不起作用。我收到一条数据库错误消息。 (标准消息..)
如果我将字符串更改为:
SELECT `id`,`dmd_key`
FROM `keys`
WHERE `dmd_key` = '140ec37b981042c8549b07d6d4589295'
AND `website` = 'test.de'
我得到了结果。 我想我必须更改设置中的某些内容,但我不知道是什么。
我是第一次和medoo在一起,我觉得medoo不爱我...
感谢您的帮助。
这似乎是 Medoo 中的一个问题。你不是唯一看到这个问题的人(1,
case 'mysql':
// Make MySQL using standard quoted identifier
$commands[] = 'SET SQL_MODE=ANSI_QUOTES';
此选项似乎在您的虚拟主机上被禁用,导致 Medoo 在您的环境中无法使用。
很难用语言来形容这有多疯狂。框架应该生成与其运行的数据库兼容的 SQL。我会切换到不同的框架。
SET SQL_MODE=ANSI_QUOTES
如果MySQL重启就失效了,需要重新执行
或者您可以转到 medoo.php 并更新函数以使用反引号,如下所示:
protected function table_quote($table)
{
return '`' . $this->prefix . $table . '`';
}
protected function column_quote($string)
{
preg_match('/(\(JSON\)\s*|^#)?([a-zA-Z0-9_]*)\.([a-zA-Z0-9_]*)/', $string, $column_match);
if (isset($column_match[ 2 ], $column_match[ 3 ]))
{
return '`' . $this->prefix . $column_match[ 2 ] . '`.`' . $column_match[ 3 ] . '`';
}
return '`' . $string . '`';
}