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'。
简单的技巧都解决了所有问题。