mysql 增的封装函数_完整的函数封装啦(增、删、改、查)

该博客详细介绍了如何编写一个数据库操作的魔术函数mysql_bind()。函数利用func_get_args()获取所有参数,通过str_replace()和vsprintf()处理SQL语句中的占位符,并根据不同的SQL操作(INSERT, UPDATE, DELETE)返回不同的执行结果。此外,还涉及到了数据库连接、设置字符集以及数据查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//编写数据库操作的魔术函数

function mysql_bind(){

//首先我们不知道外面会传入多少个参数

//可以用func_get_args()方法来获取全部传入参数,这个方法返回全部参数的数组

//和func_get_args()方法相对应的其实还有一个func_num_args()来获取参数个数

$args = func_get_args();

//通过使用array_shift方法,使传入的第一个参数,后后面的参数分开,其实就是把sql语句,和

//后面传入的值分开,使用了array_shift方法,可以返回一个字符串,这个字符串就是sql语句

//后面剩下的数组就是要传入的值

//sql语句

$sql = array_shift($args);

//重新复制给一个数组

$value = $args;

//替换$sql语句中的?,使用str_replace函数

$sql = str_replace("?","'%s'",$sql);

//把替换好的$sql语句,通过vsprintf函数,把值填入进去

$sql = vsprintf($sql,$value);

//截取$sql语句前面的关键字,其实就是select,insert,update,delete

$begin = substr($sql,0,6);   //explode(" ",$sql)[0]; //这种写法在PHP5.4之前是不支持的

$conn = mysql_connect("localhost","root","") or die(mysql_error());

mysql_select_db("bbs",$conn);

mysql_query("set names 'utf8'");

$result = mysql_query($sql) or die(mysql_error());

if(strcasecmp($begin,"insert") == 0){

//如果插入成功,那么肯定有一个最新的id,所以这个id不等于0的话,证明插入成功,否则失败

return mysql_insert_id();

}

else if(strcasecmp($begin,"update") == 0){

//mysql_affected_rows()表示几行受影响,成功,肯定是大于0,否则失败

return mysql_affected_rows();

}

else if(strcasecmp($begin,"delete") == 0){

//mysql_affected_rows()表示几行受影响,成功,肯定是大于0,否则失败

return mysql_affected_rows();

}

else{

//为了将查询的内容返回回去

//首先申明一个空的数组,然后,这个空的数组,每次循环,都将$row赋值给他

//相当于这个数组就形成了一个二维数组

$arr = array();

while($row=mysql_fetch_array($result)){

$arr[] = $row;

//            array_push($arr,$row);

}

return $arr;

}

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值