php中array_map() 调用 mysql_real_escape_string 清理数组

用 array_map() 调用 mysql_real_escape_string 清理数组

由于 mysql_real_escape_string 需要 MySQL 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库。

 

 代码如下 复制代码

<?php

// 说明:用 array_map() 调用 mysql_real_escape_string 清理数组

// 整理:http://www.111cn.net

function mysqlClean($data)

{

return (is_array($data))?array_map('mysqlClean', $data):mysql_real_escape_string($data);

}

?>

调用方法

 代码如下 复制代码

<?php

$conn = mysql_connect('localhost', 'user', 'pass');
$_POST = mysqlClean($_POST);

?>

经过清洁的数据可以直接插入数据库。

注意!mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string ,两者的区别是:

mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑。

 

用 mysql_real_escape_string 清洁并限制字符长度

由于 mysql_real_escape_string 需要 MySQL 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库。

 

在知道数据类型为字符串时,我们可以在清洁数据的同时限制字符串长度。此方法来自 David Lane, Hugh E. Williams《Web Database Application with PHP and MySQL 》(O’Reilly, May 2004)

 

 代码如下 复制代码

<?php

// 说明:用 mysql_real_escape_string 清洁并限制字符长度

// 整理:http://www.111cn.net

function mysqlClean($array, $index, $maxlength)

{

if (isset($array[$index]))

{

$input = substr($array["{$index}"], 0, $maxlength);

$input = mysql_real_escape_string($input);

return ($input);

}

return NULL;

}

?>

调用方法:

 

 代码如下 复制代码

<?php

$conn = mysql_connect('localhost', 'user', 'pass');

 

if(isset($_POST['username']))

{

$_POST['username'] = mysqlClean($_POST, 'username', 20);

echo $_POST['username'];

}

?>

将 $_POST 数组中的 ‘username’ 清洁并截取前20位字符。

 

时间: 2024-08-01 04:52:00

php中array_map() 调用 mysql_real_escape_string 清理数组的相关文章

java matlab 二维数组-java调用matlab中调用二维数组问题

问题描述 java调用matlab中调用二维数组问题 我是用的以下matlab函数 function [Theta, Phi, R] = infofusion(a1, b1, a1, b2, a3, b3): 其中a1,b1,a2,b2,a3,b3都是4*3的二维数组,并且每个数组里面都是常量,都是数,请问各位大神,如何在java调用matlab的基础上实现二维数组的调用,跪求了

jQuery中通过ajax调用webservice传递数组参数的问题实例详解_jquery

下面通过实例给大家说明比较直观些,更方便大家了解. 本人的项目中通过jquery.ajax调用webservice. 客户端代码如下: $.ajax({ url: "test/xxx.asmx", type: 'POST', dataType: 'xml', timeout: , data: { name: "zhangsan", tags: ["aa", "bb", "cc"] }, error: fun

php中array_map数组回调函数使用例子

array array_map ( callable $callback , array $arr1 [, array $... ] ) array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元. callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致.    代码如下 复制代码 function fun($n) { return $n * $n * $n; } $a = array(1, 2, 3, 4

怎么调用数组中的元素全是数组

问题描述 求大神们帮我看看 解决方案 解决方案二:不就是个数组么?解决方案三:直接用下标访问就是了,你的问题是什么解决方案四:本身就是元素为数组的数组,当然里面全是数组啦!解决方案五:[0,0]13.0意思是在二维数组0,0位置的元素值为13.0解决方案六:这个数组是从MATLAB中的元胞数组调出来的,数组中的元素全部是数组,请问怎么取出其中的数组元素解决方案七:这个就是一个二维数组喽doubles=double[0][0];s=13.0解决方案八:inta=arr[0][0]这样解决方案九:差

谈谈JAVA中的调用方式

很多书籍都说Java支持传引用调用的方式,类似于C++中的Person &a引用调用,而近来编程遇到一系列问题让我对此产生了怀疑,于是将这些方法一一列出,我们来一起看看JAVA中的调用方式:   看下面的程序:  class Person {      private String name;//姓名     private String sex;//性别     public Person(String x, String y) {         this.name = x;        

在VB.Net中创建使用控件数组

创建|控件|数组   在VB.Net中创建使用控件数组 首先创建一个Button类型控件数组: 1.创建"Windows应用程序"类型的工程,添加名为ButtonArray的类,并使该类继承 System.Collection.CollectionBase 类.System.Collections.CollectionBase类是.NET框架类库中为集合操作提供抽象的基类,通过对它的继承可以为我们的ButtonArray类具备集合增加.删除.索引的功能. 2.为ButtonArray类

在 C# 中处理结构内的数组

数组 在 C/C++ 代码中,大量掺杂着包括普通类型和数组的结构,如定义 PE 文件头结构的 IMAGE_OPTIONAL_HEADER 结构定义如下: 以下内容为程序代码: typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size;} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 1

[C#学习]在多线程中如何调用Winform

问题的产生: 我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程中调用这个form(为什么?),而事实上我在调用时程序常常会崩掉.请问如何从多线程中调用form中的方法呢? 解答: 每一个从Control类中派生出来的WinForm类(包括Control类)都是依靠底层Windows消息和一个消息泵循环(message pump loop)来执行的.消息循环都必须有一个相对应的线程,因为发送到一个window的消息实际上只会被发送到

c++-MFC 中 CString转换成char[]数组

问题描述 MFC 中 CString转换成char[]数组 环境为vs2010 CString szText; char a[1024]; edit1.GetWindowText(szText);//获取edit1编辑框的文本 怎么将CString类 szText 转换为char[]数组的内容? memcpy(a,szText,1024);只能读取文本的第一个字符 解决方案 MFC不建议用char类型了,你用TCHAR,宽字符的处理速度还快些 解决方案二: memcpy(a,(const cha