略谈换行符在数据库查询中引起的错误

7 篇文章 0 订阅

最近深被php数据库查询困扰。

典型的例子就是,取web页面中某个元素的innerhtml值,虽然通过javascript 可以轻松取出,

但是看不到值里面是否有“\n” 、“\r” 、“\t”、“ ” 等一些空字符。这给数据查询带来了麻烦。

       比如说你要查询的字段值$filed_value="test", 它是一个4个字节长度的字符串。但是在你从web页面

中取出来的是“test\n”,这个“\n”换行符,你其实看不见。这就导致了你从web页面中取出了5个字节大小的

字符串,当你在数据库中查找字段值为”test“的行时,你根本就找不到。mysql_num_rows()的值为0。

       这是该怎么办呢?

可以通过javascript、php去除掉字符串首尾。

       1、php去除字符串$str="\rtest\r\n",可以用函数trim(),即trim($str)

       2、javascript去除字符串str首尾空白字符,一般是通过正则表达式,也可以利用JQuery中的trim函数

1)str.replace(/(^\s*)|(\s*$)/g, ""); 

  2)$.trim(str);


通过以上两个方法怎么检查是否真的去除掉了字符串中的空白字符呢?

大家想的什么方法了呢?不妨分享一下,共同进步。

本人想的的方法是php中的json_encode函数。下图是利用json_encode函数查看字符串中空白字符的效果图。

注意,通过json_encode可以看到”\r“、”\n“、 ”\t“等字符。

测试代码如下:

<?php
    $arr=array("name"=>"svap\n");
    $json=json_encode($arr);
    echo $json;
    echo "\n";
    $arr['name']=trim($arr['name']);
    $json=json_encode($arr);
    echo $json;
 ?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值