脚本宝典收集整理的这篇文章主要介绍了php – 使用一个带有可变数量输入变量的bind_param(),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$stmt = $MysqLi->PRepare("UPDATE mytable SET myVAR1=?,myvar2=... WHERE id = ?")) { $stmt->bind_param("ss...",$_POST['myvar1'],$_POST['myvar2']...);
但是一些$_POST [‘…’]可能是空的,所以我不想在DB中更新它们.
考虑到空$_POST [‘…’]的所有不同组合并不实际,虽然我可以根据我的需要构建字符串“UPDATE mytable SET …”,但bind_@R_447_1403@是一个不同的野兽.
我可以尝试将其调用作为字符串构建并使用eval()但它感觉不对:(
call_user_func_array
函数使用可变数字或参数调用bind_param方法:
$paramnames = array('myvar1','myvar2',/* ... */); $params = array(); foreach ($paramNames as $name) { if (isset($_POST[$name]) && $_POST[$name] != '') { $params[$name] = $_POST[$name]; } } if (count($params)) { $query = 'UPDATE mytable SET '; foreach ($params as $name => $val) { $query .= $name.'=?,'; } $query = substr($query,-1); $query .= 'WHERE id = ?'; $stmt = $MysqLi->prepare($query); $params = array_merge(array(str_rePEat('s',count($params))),array_values($params)); call_user_func_array(array(&$stmt,'bind_param'),$params); }
以上是脚本宝典为你收集整理的php – 使用一个带有可变数量输入变量的bind_param()全部内容,希望文章能够帮你解决php – 使用一个带有可变数量输入变量的bind_param()所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。