mysql_real_escape_string在cakephp中不起作用



mysql_real_escape_string在cakephp中不起作用。我会遇到以下错误。mysql_real_escape_string():访问用户'root'@'localhost'(使用密码:no)[app/controller/add.php,第123行]数据库连接:

  <?php
    class DATABASE_CONFIG {
        public $default = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => 'xyz',
            'password' => 'password',
            'database' => 'xyz',
            'prefix' => '',
            //'encoding' => 'utf8',
        );
        public $test = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => 'xyz',
            'password' => 'password',
            'database' => 'xyz',
            'prefix' => '',
            //'encoding' => 'utf8',
        );
    }
     ?>


 <?php 
          $price1=implode("'~'",array_map('mysql_real_escape_string',$this->request->data['iupdate']['price']));
    ?>

localhost的工作正常,但在服务器中遇到错误。

我不知道蛋糕php,但是恕我直言,您只是无法使用mysql_real_escape_string,因为:

  • 首先,它是弃用。

    此扩展名为5.5.0 php 5.5.0,将来将删除。相反,应使用MySQLI或PDO_MYSQL扩展名。

  • 第二,根据PHP Doc:

    MySQL连接。如果未指定链接标识符,则假定MySQL_Connect()打开的最后一个链接。如果找不到这样的链接,它将尝试创建一个链接,就像在没有参数的情况下调用MySQL_Connect()。

因此,您正在尝试通过php.ini中设置的值连接到生产服务器,当然,出于安全原因,您无法与根特权连接。

正如我告诉你的:我不知道cakephp,但是我很确定,有一个可以逃脱字符串的功能,或者-better-使用PDO准备弹簧弹奏

如果在安装cakephp 2.0和更多过程中找到了它,则用'username'=>'xyz'替换'login'=>'xyz'。

简单的技巧都解决了所有问题。

相关内容

  • 没有找到相关文章

最新更新