10 服务器端用 mysql_real_escape_string 清洁客户端数据


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

PHP
<?php
function mysqlClean($data)
{
return (is_array($data))?array_map(mysqlClean, $data):mysql_real_escape_string($data);
}
?>

调用方法
PHP:

<?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 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库。

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

PHP:

<?php
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:

<?php
$conn = mysql_connect(localhost, user, pass);

if(isset($_POST[username]))
{
$_POST[username] = mysqlClean($_POST, username, 20);
echo $_POST[username];
}
?>

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


转自 http://www.2cto.com/database/201006/50354.html
时间: 2024-10-23 03:54:15

10 服务器端用 mysql_real_escape_string 清洁客户端数据的相关文章

android 如何从服务器端的数据库中拿数据,在客户端显示类?

============问题描述============ android 如何从服务器端的数据库中拿数据,在客户端显示类? ============解决方案1============ 写一个网络访问的api,Android通过API取到数据, ============解决方案2============ 有種WebService的方法可以將資料用xml格式傳送取得 ============解决方案3============ 为神马要直接访问数据库呢 叫服务端给你开放几个接口不就行了么- - ===

【干货】如何通过OPC自定义接口来实现客户端数据的读取?

上篇博文分享了我的知识库,被好多人关注,受宠若惊.今天我把我在项目中封装的OPC自定义接口的程序分享一下.下面将会简单简单介绍下OPC DA客户端数据访问,以及搭配整个系统的运行环境. OPC(OLE for Process Control)其实就是一套标准,我对这套标准理解不多,使用过程中就把它理解一套协议或者规范,主要用于工控领域.OPC中有很多规范,我主要使用OPC DA规范来进行数据的读写操作.还有其他规范,比如OPC UA.OPC HDA等.如果你做的是OPC Server开发查下这方

Mybatis之拦截器--获取执行SQL实现多客户端数据同步

最近的一个项目是将J2EE环境打包安装在客户端(使用 nwjs + NSIS 制作安装包)运行, 所有的业务操作在客户端完成, 数据存储在客户端数据库中. 服务器端数据库汇总各客户端的数据进行分析. 其中客户端ORM使用Mybatis. 通过Mybatis拦截器获取所有在执行的SQL语句, 定期同步至服务器. 本文通过在客户端拦截SQL的操作介绍Mybatis拦截器的使用方法. 1. 项目需求 客户分店较多且比较分散, 部分店内网络不稳定, 客户要求每个分店在无网络的情况下也能正常使用系统, 同

第九章 用多线程来读取epoll模型下的客户端数据

#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <assert.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <string.h> #include

RAC 10.2.0.5,客户端登陆间断遭遇ORA-12545

试验环境: 服务端:OEL 5.7 + Oracle 10.2.0.5 RAC 客户端:Windows 7 + Oracle 11.2.0.1 Client 1.客户端登陆间断遭遇ORA-12545,现象如下: C:\Users\xiaoyu>sqlplus system/[email protected]192.168.1.171/jy.oracle.com SQL*Plus: Release 11.2.0.1.0 Production on 星期二 5月 20 19:43:52 2014 C

struts封装客户端数据到Action

1.在Action中定义简单数据类型的属性 给Action定义简单类型的属性,封装客户端请求的数据 简单类型:String,基本类型和对应的引用类型 只要保证客户端请求的参数名称和Action的属性名称一样. 2.在Action中定义javabean对象封装客户端数据 2.1定义实体类 public class Users { private String uname; private String upwd; private Integer type; public String getUna

10个最热门的大数据技术

大数据已经融入到各行各业,哪些大数据技术是最受欢迎?哪些大数据技术潜力巨大?请听大讲台老师对10个最热门的大数据技术的介绍. 互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口.为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人.我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群:868847735 欢迎进阶中和进想深入大数据的小伙伴加入. (一)预测分析 预测分析是一种统计或数据挖掘解决方案,包含可在结构化和非结构化数据中使用以确定未来结果的算法和技术.

SignarL服务器端发送消息给客户端的几种情况

原文:SignarL服务器端发送消息给客户端的几种情况 一.所有连接的客户端 Clients.All.addContosoChatMessageToPage(name, message); 二.只发送给呼叫的客户端(即触发者) Clients.Caller.addContosoChatMessageToPage(name, message); 三.除了触发者之外的所有客户端 Clients.Others.addContosoChatMessageToPage(name, message); 四.

服务器端脚本语言和客户端脚本语言

(一)常见的服务器端脚本语言,php,jsp,asp. 像我们普通浏览网页基于一种BS模式,其实它也只是一种统一于Browser(浏览器)的CS模式.我们的浏览器作为客户端,在点击链接或者输入地址时,向目的主机发送HTML,FTP等等服务请求,然后目的主机根据请求类型,请求内容给予响应.这种万变不离其宗的服务形式普遍存在于所有的网络通信模式中. 服务器脚本很简单,它是应于提交和处理表单,实现动态内容而出现的.想象一下一个中型网站大约有几千个链接地址,你总不能为每一个地址增加一个页面吧.于是服务器