php - 为什么关心 mysqli_stmt::bind_param 中的类型?

标签 php prepared-statement

我在 PHP 脚本中使用 mysqli_stmt::bind_param 函数。

不方便关心你传递的参数类型是“d”还是类型“s”或者其他什么。为什么总是对字符串、整数和 double 使用类型“s”是不好的?

据我了解,mysql会在需要时自行处理类型转换。

最佳答案

按照你的说法,这确实并不重要。唯一的问题是 mysql 在 strict mode 中运行.

尽管如此,事实上,开发人员通常应该始终了解查询部分的类型。
因为它不仅可以是字符串或数字,还可以是标识符或其他东西。
因此,最好使占位符类型提示,让驱动程序根据查询部分类型应用正确的格式,使查询看起来像这样:

SELECT * FROM table WHERE field=?s AND id IN(?a) ORDER BY ?n LIMIT ?i 

关于php - 为什么关心 mysqli_stmt::bind_param 中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14546156/

相关文章:

java - 将表名作为准备语句的参数传递

php - Laravel 4 Form::open 设置 Action

sql - Postgres : Could not identify an ordering operator for type unknown

jdbc - 在 jvm 或 db 中预编译的预处理语句在哪里?

php - 简单准备语句中的 MySQL 语法错误?

java - 如何参数化 SELECT 语句的字段?

php - 使用 PHP 插入表并准备好语句,获取响应代码 500

php - 如何在运行 'composer update/install' 后正确更改 composer 或 Symfony2 的功能?

php - 从多个表中提取 SQL 数据

php - 保留前两行文本,删除其他所有内容