php – 我可以让mysql对它收到的数据类型不那么严格吗?
发布时间:2020-12-13 17:20:53 所属栏目:PHP教程 来源:网络整理
导读:我有一个用户看起来像这样的对象. $user = new User();$user-name = 'Name';$user-age = 34; 在我的数据库中有五个字段, id,name,age,location,reputation 我有一个方法(对于我的所有表)使用以下SQL从表中动态收集所有字段.这样我就可以动态地获取要放在INSE
我有一个用户看起来像这样的对象.
$user = new User(); $user->name = 'Name'; $user->age = 34; 在我的数据库中有五个字段, id,name,age,location,reputation 我有一个方法(对于我的所有表)使用以下SQL从表中动态收集所有字段.这样我就可以动态地获取要放在INSERT语句中的占位符数. SHOW FIELDS FROM users SHOW FIELDS FROM questions SHOW FIELDS FROM topics 然后我编写了一个create方法,它计算表中字段的数量,并准备一个充满占位符的字符串,并自动将其插入到我的PDO查询中,使得: INSERT INTO users VALUES (?,?,?) 然后我接受我的$user对象并从它拥有的所有属性中创建一个数组,并将该数组提供给execute参数中的PDO预处理语句.这工作正常,该函数将数据插入数据库. 我的问题是,有时我还没有填充我的对象的所有属性,因此我填充了用空字符串提供执行函数的数组的其余部分.当它到达一个取整数的字段时,它会导致致命错误并且不起作用.如果不为代码中的每个字段编写正确的数据类型,我能够动态地将空字段插入到我的数据库中,该怎么办?因为这一切都是动态完成的,所以我不能提前知道在那里放一个整数或一个空字符串.有没有办法完全省略一些占位符?还有其他方法吗? 解决方法
将可选的mysql字段设置为接受NULL.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |