Heim  >  Artikel  >  Backend-Entwicklung  >  thinkphp 3.2 视图模型 生成的SQL语句提示 1267异常 求指点

thinkphp 3.2 视图模型 生成的SQL语句提示 1267异常 求指点

WBOY
WBOYOriginal
2016-06-13 12:10:291124Durchsuche

thinkphp 3.2 视图模型 生成的SQL语句提示 1267错误 求指点~
用的TP3.2 视图模型 查询 
模型里是这样写的 
PicViewModel.class.php

<?php<br />namespace Home\Model;<br />use Think\Model\ViewModel;<br />class PicViewModel extends  ViewModel{<br />    public $viewFields =array(<br />       'Picture'=> array('picTitle','picToken','picCategroy','picAuthor','picPostTime','_as'=>'Picture'),<br />        'PictureAttachment' =>array('pictureid','pictureurl','creattime','_on'=>'Picture.picToken = PictureAttachment.pictureid','_as'=>'PictureAttachment'),<br /><br /><br />    );<br />}<br />

控制器这样写
  public function  Pic(){<br />         $PicModel =D('PicView');    <br />        $s1= $PicModel->field('picTitle,picCategroy,picAuthor,picPostTime,pictureurl')->order('picPostTime desc')->select();<br />        dump($PicModel->getLastSql());<br />        dump($s1);<br /><br />    }

生成的SQL 语句是这样的
SELECT Picture.picTitle AS picTitle,Picture.picCategroy AS picCategroy,Picture.picAuthor AS picAuthor,Picture.picPostTime AS picPostTime,PictureAttachment.pictureurl AS pictureurl FROM xxx_picture Picture  JOIN xxx_picture_attachment PictureAttachment ON Picture.picToken = PictureAttachment.pictureid ORDER BY Picture.picPostTime desc

在phpmyadmin里运行出现
MySQL 返回: 文档

#1267 - Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' 
这个应该是排序规则不同  然后我在phpmyadmin里直接修改表的
改成一样是utf8_general_ci,了 还是报错 

网上查了是这样执行
alert xxx_picture_attachment CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
ALTER xxx_picture_attachment DEFAULT CHARACTER SET utf8_general_ci
貌似也不行额
报错
MySQL 返回: 文档

#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 'alert xxx_picture_attachment CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_' at line 1 

求大神指点下啊
------解决思路----------------------
贴出表结构看看

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn