栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在php中创建安全的mysql准备语句?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在php中创建安全的mysql准备语句?

这是一个使用mysqli的示例(对象语法-如果需要,可以很容易地转换为函数语法):

$db = new mysqli("host","user","pw","database");$stmt = $db->prepare("SELECt * FROM mytable where userid=? AND category=? ORDER BY id DESC");$stmt->bind_param('ii', intval($_GET['userid']), intval($_GET['category']));$stmt->execute();$stmt->store_result();$stmt->bind_result($column1, $column2, $column3);while($stmt->fetch()){    echo "col1=$column1, col2=$column2, col3=$column3 n";}$stmt->close();

另外,如果您想要一种简单的方法来获取关联数组(供SELECT *使用),而不必确切指定要绑定的变量,那么这是一个方便的函数:

function stmt_bind_assoc (&$stmt, &$out) {    $data = mysqli_stmt_result_metadata($stmt);    $fields = array();    $out = array();    $fields[0] = $stmt;    $count = 1;    while($field = mysqli_fetch_field($data)) {        $fields[$count] = &$out[$field->name];        $count++;    }    call_user_func_array(mysqli_stmt_bind_result, $fields);}

要使用它,只需调用它而不是调用bind_result即可:

$stmt->store_result();$resultrow = array();stmt_bind_assoc($stmt, $resultrow);while($stmt->fetch()){    print_r($resultrow);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号