php语句分析
请教各位大侠这句是啥意思is_array(current($data)) || $data = [$data]; 面向百度编程就看出来了吧。。。。。。
先is_array判断current($data)是否是数组
current是返回数组当前指针的值 也就是说之前没移动过指针的话,那么这个值就是data的第一个键值对,
也就是判断data的第一个键值对是否为数组如果为数组 这句表达式返回true后面不执行
如果不为数组则$data = ; 并且返回true 最后一句说的不对。。。。如果$data为空的话,最后返回false! 傍晚升起的太阳 发表于 2020-5-13 15:28
面向百度编程就看出来了吧。。。。。。
先is_array判断current($data)是否是数组
current是返回数组当前 ...
多谢大侠回复,本人小白 那么 $data = ;是什么意思呢? 就赋值啊。。。。。把自身放到一个数组里,然后再赋值回自身 大致意思就是检测$data的值是否存在如果存在就用它 不存在就用$data 。并且把值赋给他! 傍晚升起的太阳 发表于 2020-5-13 15:31
就赋值啊。。。。。把自身放到一个数组里,然后再赋值回自身
哦 哦。 多谢。多谢拉 我把完成的function 发过来吧 //通过预处理方式执行SQL
function db_query($sql, $type='', $data=[]){
//获取数据库连接
$link = db_connect();
//预处理SQL语句
if(!$stmt = mysqli_prepare($link, $sql)){
E('数据库操作失败。', mysqli_error($link)."\nSQL语句:".$sql);
}
//无参数绑定时,直接执行
if($data == []){
mysqli_stmt_execute($stmt);
}else{
//批量处理
$data = (array)$data; //如果不是数组,强制转换为数组
is_array(current($data)) || $data = [$data]; //自动识别批量模式
$params = array_shift($data); //准备待绑定的变量
db_bind_param($stmt, $type, $params); //参数绑定
mysqli_stmt_execute($stmt); //执行第1个
foreach($data as $row){ //批量执行剩余的
foreach($row as $k=>$v){
$params[$k] = $v; //变更参数值
}
mysqli_stmt_execute($stmt);
}
}
return $stmt;
}
就是中间批量处理这一段看不大懂
ww903 发表于 2020-5-13 15:40
//通过预处理方式执行SQL
function db_query($sql, $type='', $data=[]){
//获取数据库连接
建议看看基础语法。。
页:
[1]
2