如何正确地将php PDO应用于Laravel

时间:2014-05-09 07:13:06

标签: php

作为我的搜索结果,Laravel默认使用PDO处理数据库查询,并且不需要像使用PDO时mysql_real_escape_string()那样转义任何查询。
mysql_real_escape_string()\r转换为\\r,这就是我需要的内容,因为我不希望用户名中出现回车字符。
但是,当我尝试这个时:

$name="\r\r\r\r\r\r\r\r\r";
$user = User::where("username","=",$input)->first();
$user->name=$name;
$user->save();
echo "<p>".$user["name"]."</p>";

输出html代码如下:

<p>








</p>  

PDO是否使用其他方法处理\r
或者Laravel没有使用PDO来处理这个查询? 我能做到最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

前提是错误的:有效的“_escape_string”会更改数据的内容,只会更改特定上下文中的编码。

如果不需要换行符(或其他奇数字符),则应用业务规则保护或过滤来自用户的数据。

(另外,客户端转义甚至可能不在PDO内部使用。)

答案 1 :(得分:-1)

如果要替换数据中的某些字符,那么使用哪个数据库层并不重要。

用适当的PHP函数替换你想要的任何字符。这就是全部