我插入了一些包含 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/