如何在PDO中按数字绑定ENUM类型


How bind ENUM type by number in PDO

是否可以通过PDO语句中的编号绑定MySQL ENUM类型,如:

$stm = $pdo->prepare( "insert into `my_table` (`id`, `enum_type`) values (?, ?)");
$stm->bindParam( 1, $id, PDO::PARAM_INT);
$stm->bindParam( 2, $number, PDO::PARAM_INT);
........`

PDO::PARAM_STR对于枚举值应该是安全的,因为我相信它们是以基于字符串/字符串的数据类型存储在数据库本身中的。

事实上,对于未指定的参数类型,PDO默认为PDO::PARAM_STR,这在其签名中是可见的:

 public PDOStatement::bindParam(
    string|int $param,
    mixed &$var,
    int $type = PDO::PARAM_STR,
    int $maxLength = 0,
    mixed $driverOptions = null
): bool