php sql %s,php sprintf()函数让你的sql操作更安全

$bookSQL=sprintf("UPDATEbookSETpass=%sWHEREid=%d",

GetSQLValueString($_POST['list'],"text"),

GetSQLValueString($_GET['id'],"int"));

GetSQLValueString这个函数,可以换成别的函数

但在sql语句这里用上sprintf()这个函数的话!就相对安全多了,比如id那里我们可以用上%d

或是有很多sql操作的时候,用上这个

$Result=$db->query($bookSQL)ordie(mysql_error());

下面加上sprintf这个函数的说明:

引用

sprintf

将字符串格式化。

语法:stringsprintf(stringformat,mixed[args]...);

返回值:字符串

函数种类:资料处理

内容说明

本函数用来将字符串格式化。参数format是转换的格式,以百分比符号%开始到转换字符为止。而在转换的格式间依序包括了

填空字符。0的话表示空格填0;空格是默认值,表示空格就放着。

对齐方式。默认值为向右对齐,负号表向左对齐。

字段宽度。为最小宽度。

精确度。指在小数点后的浮点数位数。

类型,见下表%印出百分比符号,不转换。

b整数转成二进位。

c整数转成对应的ASCII字符。

d整数转成十进位。

f倍精确度数字转成浮点数。

o整数转成八进位。

s整数转成字符串。

x整数转成小写十六进位。

X整数转成大写十六进位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
做的内容就是剩掉你写sql语句的时间 有显示,插入,修改,删除,还有显示的表格和添加修改的表单! 下载后把MakeCode.exe.config里的用名和密码改成你本地的!就可以简单的生成! 里面用到的mysql类,还有sql语句中的函数,都在其它代码中 if($_POST['id']==''){ //INSEART $InsertSQL = sprintf("INSEART INTO cuku_faqcat (`catname`,`list`,`cont`) VALUES (%s ,%s ,%s )", GetSQLValueString($_POST['catname'],"text"), GetSQLValueString($_POST['list'],"int"), GetSQLValueString($_POST['cont'],"text")); $db->query($InsertSQL); }else{ //UPDATE $UpdateSQL = sprintf("UPDATE cuku_faqcat SET `catname`= %s, `list`= %s, `cont`= %s where `id`= %s)", GetSQLValueString($_POST['catname'] ,"text"), GetSQLValueString($_POST['list'] ,"int"), GetSQLValueString($_POST['cont'] ,"text"), GetSQLValueString($_POST['id'],"int")); $db->query($UpdateSQL); } //生成时用到的函数 function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "now()"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; case "sqltable": $theValue = ($theValue != "") ? $theValue : die("NULL Table"); break; } return $theValue; } //引入数据库类 include"./mysql.php"; //声明数据库 $db = new Dirver(); 加上数据库类的写法!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值