如何修改MySQL查询,将updated_by字段匹配的固定值替换为传入参数
解决方案
你现有代码的核心问题是:已经通过$_GET获取了动态的updated_by参数、也写了参数绑定逻辑,但SQL语句里仍写死了固定匹配值'Name of the Person',且没有预留对应的参数占位符,导致参数绑定代码不生效。
你只需要修改SQL语句的条件部分即可,修正后的完整代码如下:
<?php $updated_by = $_GET['updated_by']; // 把固定值替换为PDO参数占位符:updated_by $sql = "SELECT * from neonat_patient where updated_by = :updated_by;"; $query = $dbh->prepare($sql); $query->bindParam(':updated_by', $updated_by, PDO::PARAM_STR); $query->execute(); $results = $query->fetchAll(PDO::FETCH_OBJ); $cnt = 1; if($query->rowCount() > 0) { foreach($results as $result) { ?>
核心修改说明
- 将原SQL语句中的固定匹配值
'Name of the Person'替换为PDO参数占位符:updated_by,后续的bindParam方法就可以将你传入的$updated_by值动态绑定到查询语句中,实现按传入值匹配updated_by字段的效果。 - 现有代码用PDO参数绑定的写法已经规避了SQL注入风险,不需要额外调整其他逻辑。
内容的提问来源于stack exchange,提问作者psp
相关产品推荐
相关产品推荐

