首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql-真正的转义字符串:在CakePHP中拒绝访问

问mysql-真正的转义字符串:在CakePHP中拒绝访问
EN

Stack Overflow用户
提问于 2012-05-24 06:56:45
回答 4查看 2.1K关注 0票数 2

在使用CakePHP将数据保存到数据库之前,我正在尝试使用mysql--真正的转义-字符串对输入进行清理。我得到以下错误

mysql_real_escape_string() Function.mysql-真正的-转义-字符串:拒绝用户‘任何人’@‘localhost’的访问(使用密码: NO)

我的守则:

代码语言:javascript
复制
public function admin_videos($id = null) {
        if(!($this->isLogged() && $this->isAuthorized())) {
            $this->redirect(array('controller' => 'users', 'action' => 'login', 'admin' => true));
        }
        if ($this->request->is('post')) {
            $this->request->data['MovieVideo']['video'] = mysql_real_escape_string($this->request->data['MovieVideo']['video']);
            $this->request->data['MovieTrailer']['video'] = mysql_real_escape_string($this->request->data['MovieTrailer']['video']);
            if ($this->Movie->saveAll($this->request->data)) {
                $this->Session->setFlash('The movie has been saved', 'admin/flash_success');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('The movie could not be saved. Please, try again.', 'admin/flash_error');
            }
        } else {
          $this->request->data = $this->Movie->find('first', array('conditions' => array('Movie.id' => $id), 'contain' => array('MovieTrailer', 'MovieVideo')));
        }
    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-24 07:01:04

来自文档

如果使用CakePHP的ORM方法(如find()和save())和适当的数组表示法(即,),CakePHP已经保护您不受SQL注入的影响。数组(‘field’=> $value),而不是原始SQL。

因此,忘记手动调用mysql_real_escape_string()吧。

票数 5
EN

Stack Overflow用户

发布于 2012-05-24 07:01:16

我想你还没有连接到mysql数据库。使用正确的凭据尝试mysql_connect()和mysql_select_db()

票数 2
EN

Stack Overflow用户

发布于 2012-05-24 07:42:11

mysql_real_escape_string()需要将到数据库的连接作为第二个参数,除非您已经打开连接:http://php.net/manual/en/function.mysql-real-escape-string.php

您可以尝试以下一个:

  • 尝试使用mysql_escape_string (现在已不再推荐)
  • 切换到PDO并使用引号函数( http://uk3.php.net/manual/en/pdo.quote.php )
  • 先初始化到数据库的连接,然后将该连接传递给mysql_real_escape_string

通常,我建议使用PDO,因为它比mysql_*函数更好,更受支持

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10732600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档