php - 如何进行参数化查询

标签 php mysql parameterized

[状态:学习者]

我正在尝试实现参数化查询,但我遇到了问题。 Jonathan Sampson 最近暗示了如何做到这一点 (#2286115),但我没有正确地遵循他的建议。这是我的脚本

$cGrade = "grade" ;

include_once ( "db_login.php" ) ;

$sql = "SELECT   last_name   AS last_name
               , first_name  AS first_name
               , grade       AS gr
               , ethnic      AS eth
               , sex         AS sex
               , student_id  AS id_num
               , reason      AS reason
               , mon_init    AS since
          FROM t_tims0809
         WHERE tag <> '' AND 
               tag IS NOT NULL AND
               schcode = {$schcode}
         ORDER
            BY ('%s') " ;

$qResult = mysql_query ( sprintf ( $sql, $cGrade ) or ( "Error: " . mysql_error() ) ) ;

查询在 ORDER BY 短语中使用 grade 时效果很好。

谢谢。

最佳答案

查看 MySQLi prepared statements类:

$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

来自 PHP 手册。

我觉得这是执行参数化查询的一种更好的方法,我已尽可能切换到准备好的语句,尤其是在批量插入/选择期间。

关于php - 如何进行参数化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2301128/

相关文章:

php - 数据库查询,比较每两行但只获取前两行

php、odbc 和 vfp

mysql - 如何根据 bool 值对同一字段进行两次计数?

python - (python)使用@parameterized lib 声明驱动程序?

generics - 参数化类型的特定生成器

php - Facebook Chat Bot - 如何测试欢迎消息?

PHP 使用 while 循环来获取项目,使用动态选择函数?

php - 我想在处理时等待 php 函数(来自另一个调用)

mysql - 加载数据文件 - 上传 CSV 文件

passwords - 在 Jenkins 的 "Injected environment variables"页面上屏蔽未存储的密码参数