admin

错误:SQLSTATE [42000]:语法错误或cakePHP的访问冲突

sql

我正在为我的应用程序使用cakePHP框架。我使用xampp在localhost上对其进行了编程,现在尝试将其上传到我的网站上。它在localhost上没有任何问题。现在只有一页,在新服务器上不起作用。其他站点(也使用数据库连接)可以正常工作。

对于该站点,将显示以下消息:

错误:SQLSTATE
[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请参见SQL语句。检查与您的MySQL服务器版本相对应的手册,以在第1行的’add’附近使用正确的语法

SQL查询:添加

函数add()看起来像这样。

public function add() { 
      //$this->create();
      $word_id = $this->Word->getWord_id();
      $save = $this->save(array('word_id' => $word_id, 'text' => $this->getText($word_id), 'mistake' => 0));
      return $save['Game']['id']; 
   }

在localhost上,我使用了MySQL-Client-Version:mysqlnd 5.0.8-dev-20102224-$
Revision:310735 $和PHP版本5.3.8。

在服务器上,我使用MySQL-Client-Version:5.1.62和PHP版本5.3.17。

非常感谢您的帮助!

编辑:模型“游戏”:

class Game extends AppModel {
   public $name = 'Game';
   public $belongsTo = 'Word';
   public $searchedWord = '';

   public function addGame() { // Create new game
      $word_id = $this->Word->getWord_id();
      $save = $this->save(array('word_id' => $word_id, 'text' => $this->getText($word_id), 'mistake' => 0));
      return $save['Game']['id']; // Build the hangman
    }
}

当我调试$ this-> Game时,输出为:

object(AppModel) {
        useDbConfig => 'default'
        useTable => 'games'
        id => null
        data => array()
        schemaName => null
        table => 'games'
        primaryKey => 'id'
        validate => array()
        validationErrors => array()
        validationDomain => null
        name => 'Game'
        alias => 'Game'
        tableToModel => array(
            'games' => 'Game'
        )
        cacheQueries => false
        belongsTo => array()
        hasOne => array()
        hasMany => array()
        hasAndBelongsToMany => array()
        actsAs => null
        Behaviors => object(BehaviorCollection) {
            modelName => 'Game'
            defaultPriority => (int) 10
        }
        whitelist => array()
        cacheSources => true
        findQueryType => null
        recursive => (int) 1
        order => null
        virtualFields => array()
        __backAssociation => array()
        __backInnerAssociation => array()
        __backOriginalAssociation => array()
        __backContainableAssociation => array()
        findMethods => array(
            'all' => true,
            'first' => true,
            'count' => true,
            'neighbors' => true,
            'list' => true,
            'threaded' => true
        )
}

阅读 164

收藏
2021-07-01

共1个答案

admin

通常,如果发生此错误,则您没有模型实例,但是您正在使用的应用程序模型实例。应用程序模型实例没有add()方法,而是直接使用add()查询数据库。

因此,请确保正确包含您的模型。由于您没有向我们展示代码,因此您如何调用方法(以及如何使模型对控制器可用),但是我无法提供任何具体建议。

如果您手动包含它:

$this->ModelName = ClassRegistry::init('ModelName');
2021-07-01