数据库名称中有一个 -(破折号) - 我收到错误

问题描述 投票:0回答:1
if (strpos($db_name, '.') === false) {
    $result = $smcFunc['db_query']('', "SHOW TABLE STATUS FROM {raw:db_name}", array('db_name' => $db_name));
} else {
    $result = $smcFunc['db_query']('', 'SHOW TABLE STATUS FROM ' . $db_name, array());
}

这有什么问题吗?我不断收到错误消息

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行“-353035393de2”附近使用的正确语法

php sql mariadb
1个回答
0
投票

虽然

-
作为标识符名称的一部分是有效的,但如果不将其封装在引号中,则无法使用
-
引用标识符:

if (strpos($db_name, '.') === false) {
    $result = $smcFunc['db_query']('', "SHOW TABLE STATUS FROM `{raw:db_name}`", array('db_name' => $db_name));
} else {
    $result = $smcFunc['db_query']('', 'SHOW TABLE STATUS FROM `' . $db_name . '`', array());
}

可能有一种更优雅或普遍接受的方式来插入这些引号字符,但很难确定,因为您没有提供任何信息或源代码来指示函数背后的内容

$smcFunc['db_query']()

© www.soinside.com 2019 - 2024. All rights reserved.