php - 不支持 Yii FULLTEXT,但绝对支持

标签 php mysql pdo yii mysql-5.6

编辑:解决了问题。我对此的回答提供了详细信息。

使用 Yii 1.1.13, MySQL 5.6.13, PHP 5.4.9

在我用 Yii 开发的应用程序中,我使用了带有 CDbCriteria 的 FULLTEXT 查询:

$criteria = new CDbCriteria;

$criteria->condition = "MATCH (item_name, description) AGAINST(:keyword IN BOOLEAN MODE)";
$criteria->params = array(
    ':keyword' => "$this->q*",
);

如果我尝试运行它,我会得到

General error: 1214 The used table type doesn't support FULLTEXT indexes. 

但是,我专门安装了这个 mysql 版本,以便能够使用 FKs 和 FULLTEXT 索引。

如果我将完全相同的 SQL 复制到 mysql 客户端(无论是 phpMyAdmin、/usr/local/bin/mysql [5.6.13] 还是/usr/bin/mysql [5.5.32]),它都可以正常工作. Yii shoehorning 它自己的 mysql 版本在那里吗?很确定 Yii 使用 PDO,而且我知道 PDO 在不与 Yii 一起使用时可以在此设置上工作。我已经尝试搜索这个问题,我只是想出了人们犯 pre-5.6 错误的结果。

最佳答案

mysql默认的存储引擎是InnoDB,不支持FULLTEXT索引,把存储引擎改成MyISAM就可以解决问题

关于php - 不支持 Yii FULLTEXT,但绝对支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18628250/

相关文章:

php - 无法使用 PHP 连接到 MAMP 中的 MYSQL

mysql - 用mysql/sql打乱一个字符串

php - 如何根据具有一对多关系的两个表中的位置进行搜索?

php - 从 ID 数组获取数据库结果

php - 多次使用 MySQL 结果数组

php - 尝试在 Amazon AWS 上的 mySQL 数据库上使用 JSON_OBJECT 函数

php - 消除ajax搜索中的空白

php - 在 Laravel 5 中从数据库渲染 html 图像标签

php - 如果状态为空而无需在 php 中提交表单,如何更新数据库中的状态?

php - 同时提交 PayPal 表格并更新数据库