php - 在 PHP 的 bind_param 中,为什么我不能将所有列都定义为 String 类型?

标签 php mysql mysqli

我插入了一些包含 40 到 50 列的表 - 类型定义是一场噩梦 - 看起来像这样:'ississsiisssisiiisssssiisssssiisssssssiiiiiiiiiiiiiiiiiiiiiiiii'

当我添加一列时,我不知道下一个字母放在哪里。如果我搞砸了,显然字符串会被转换成数字(这毫无意义)。但是作为字符串处理的数字似乎在 MySQL 中没有问题。有没有其他人看到我应该担心的事情?

请在此处查看 bind_param 文档: http://php.net/manual/en/mysqli-stmt.bind-param.php

最佳答案

这是建议

  • 构建一个包含表格列及其类型的数组

比如

 $table_columns = array('NAME_OF_COLUMN_1'=>'i',
 'NAME_OF_COLUMN_2'=>'i',
 'NAME_OF_COLUMN_3'=>'s',
 ...

如果您的列类型发生变化,请更新 $table_columns
在有新添加列的地方,将新列添加到$table_columns
在删除现有列的地方,从 `$table_columns 中远程删除现有列。

在那之后,就

implode('', array_values($table_columns))

用于绑定(bind),

列出列名

implode(',', array_keys($table_columns))

这种方法会减少出错的几率,并且容易维护

关于php - 在 PHP 的 bind_param 中,为什么我不能将所有列都定义为 String 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4274732/

相关文章:

javascript - Jquery 自动完成和 MySQL ID 值

php - PHP 真实路径缓存是如何工作的?

javascript - 将 JSON 数据从 ORACLE 获取到 Jquery Datatables

mysql - sql - 选择包含 2 个表的一列

MySQL #2006 服务器已消失/配置中定义的控制用户连接失败。 PHP 7.0.4 和 MySQL 5.7.12

php - 如何获取与mysql中的concat值字段相关的COUNT和INNER JOIN

php - Mysqli DELETE 不适用于变量

php - 准备好的语句 : Function outputs nothing

php - 如何创建使用页眉​​和页 footer 分的布局

php - 多行验证