【发布时间】:2013-04-29 09:00:52
【问题描述】:
我尝试使用 updateAll 命令更新表格帖子。但我有一个错误。我有 wot 表,即用户和帖子。我的控制器是,
<?php
App::uses('AppModel', 'Model');
class Post extends AppModel {
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'fields' => "User.id,User.name,User.uname"
)
);
function updatePost($title,$content,$pid){
$this->updateAll(
array('Post.title' => $title,'Post.content'=>$content),
array('Post.id' => $pid)
);
}
}
?>
错误信息是,
“错误:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'Post 2, Post.@ 附近使用的正确语法987654323@ =
模型是位于第 1 行的业务类。
"SQL 查询:UPDATE blog.posts AS Post LEFT JOIN blog.users AS User ON (Post.user_id = User7)@8 SET Post.title = test_title, Post.content = 样本正文 WHERE Post.id = 2 ";
如何纠正?
【问题讨论】:
-
1.用户有很多帖子,在 UserModel 文件中有关系??? 2.检查user_id是否存在于用户表中?
-
是 id 存在于用户表中,而不是 user_id,posts.user_id=users.id
-
那很好...像这样更改您的代码并检查 $this->updateAll(array('Post.titile' => '\'' .$title.'\'', 'Post .content'=>'\'' .$content.'\''), array('Post.id' => $pid) );
-
问题是因为您使用了
updateAll(),它不会转义/引用值,请参阅我的答案以获取更多信息。您可能正在寻找Model::save()
标签: jquery cakephp sql-update cakephp-2.0