【问题标题】:save and find uuid by mysql and yii通过mysql和yii保存和查找uuid
【发布时间】:2014-12-22 20:13:21
【问题描述】:

表中的键列是 char(36) utf8_general_ci

//保存没问题

$key_Ad= Yii::app()->db->createCommand('select UUID()')->queryScalar();
$modelAd->key=$key_Ad;
$modelAd->save()

//但是find有问题

$post=Ad::model()->find( "key = :key",array(':key'=>$key_Ad) );

---------->错误

CDbException

CDbCommand 未能执行 SQL 语句:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'key = '3f837af1-8a16-11e4-b111-00241d5e096e' LIMIT 1' 附近使用正确的语法。执行的 SQL 语句是:SELECT * FROM ad t WHERE key = :key LIMIT 1 (C:\xampp\htdocs\framework\db\CDbCommand.php:543)

0 C:\xampp\htdocs\framework\db\CDbCommand.php(415): CDbCommand->queryInternal('fetch', Array, Array)#1 C:\xampp\htdocs\framework\db\ar\ CActiveRecord.php(1351): CDbCommand->queryRow()#2 C:\xampp\htdocs\framework\db\ar\CActiveRecord.php(1456): CActiveRecord->query(Object(CDbCriteria))#3 C:\ xampp\htdocs\agahi\protected\controllers\ImageController.php(34): CActiveRecord->find('key = :key', Array)#4 C:\xampp\htdocs\framework\web\actions\CInlineAction.php( 49): ImageController->actionUploadImage()#5 C:\xampp\htdocs\framework\web\CController.php(308): CInlineAction->runWithParams(Array)#6 C:\xampp\htdocs\framework\web\CController .php(286): CController->runAction(Object(CInlineAction))#7 C:\xampp\htdocs\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array)#8 C:\xampp\htdocs\framework\web\CWebApplication.php(282): CController->run('UploadImage')#9 C:\xampp\htdocs\framework\web\CWebApplication.php(141): CWebApplication-> runController('图片/上传Ima...')#10 C:\xampp\htdocs\framework\base\CApplication.php(180): CWebApplication->processRequest()#11 C:\xampp\htdocs\agahi\index.php(13): CApplication->run()#12 {main}

【问题讨论】:

    标签: php mysql yii find uuid


    【解决方案1】:

    问题是您使用了保留的 mySql 关键字“key”作为列名。这就是产生语法错误的原因。最好将列重命名为不同于“键”的名称,例如“key1”或“key_ad”。

    在mySql中你仍然可以通过在select语句中使用'`'转义'key'列来执行查询,我不确定你是否可以在Yii中这样做,你应该尝试一下。

    但最好的解决方案是只重命名列,以后不要使用保留字作为列名。

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2020-01-14
      • 1970-01-01
      • 2017-09-15
      • 2017-09-30
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多