Yii2 querybuilder使用原始sql对表名进行正确的语法

问题描述 投票:1回答:1

任何人都可以告诉我在这个声明中我做错了什么

$connection =   Yii::$app->db;
$result=$connection->createCommand("SHOW TABLE STATUS LIKE 
                                   {{%promo_deliveries}}")->execute();

我收到了这个错误

带有消息'SQLSTATE [42000]的异常'yii \ db \ Exception':语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MariaDB服务器版本对应的手册,以便在第1行的'sms_promo_deliveries'附近使用正确的语法。正在执行的SQL是:`SHOW TABLE STATUS LIKE sms_promo_deliveries'

在F:\ xampp \ htdocs \ Nxb \ sms_protected \ vendor \ yiisoft \ yii2 \ db \ Schema.php:631

错误信息:数组([0] => 42000 [1] => 1064 [2] =>您的SQL语法出错;请查看与您的MariaDB服务器版本对应的手册,以便在'sms_promo_deliveries附近使用正确的语法'在第1行)

yii2 yii2-advanced-app
1个回答
1
投票

这与使用查询构建器时的表命名约定无关,实际上它是指定的语法错误,必须在表名周围添加引号,因为我使用LIKE关键字来匹配表名。

$result=$connection->createCommand("SHOW TABLE STATUS LIKE 
                                   '{{%promo_deliveries}}'")->execute();
© www.soinside.com 2019 - 2024. All rights reserved.