首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以让mysql对它接收的数据类型不那么严格吗?

问我可以让mysql对它接收的数据类型不那么严格吗?
EN

Stack Overflow用户
提问于 2012-08-27 02:32:16
回答 1查看 230关注 0票数 4

我有一个用户,一个对象看起来像这样。

代码语言:javascript
复制
$user = new User();
$user->name = 'Name';
$user->age = 34;

在我的数据库中有五个字段,

代码语言:javascript
复制
id, name, age, location, reputation

我有一个方法(对于我所有的表),它使用下面的SQL动态地从一个表中收集所有字段。通过这种方式,我可以动态地获取要放入INSERT语句中的占位符的数量。

代码语言:javascript
复制
SHOW FIELDS FROM users
SHOW FIELDS FROM questions
SHOW FIELDS FROM topics

然后,我编写了一个create方法,该方法计算表中字段的数量,准备一个包含占位符的字符串,并自动将其插入到我的PDO查询中,实现如下所示:

代码语言:javascript
复制
INSERT INTO users VALUES (?, ?, ?, ?, ?)

然后,我使用我的$user对象,用它拥有的所有属性创建一个数组,并在execute参数中将该数组提供给我的PDO prepared语句。这可以很好地工作,并且函数将数据插入到数据库中。

我的问题是,有时我还没有填充对象的所有属性,因此我填充了数组的其余部分,这些数组向execute函数提供空字符串。当它到达一个接受整数的字段时,它会导致一个致命错误,并且不起作用。如何才能在不为代码中的每个字段编写正确的数据类型的情况下,将空字段动态插入数据库?因为这都是动态完成的,所以我不能提前知道在那里放一个整数或一个空字符串。有没有办法完全省略一些占位符?还有其他的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-27 02:43:29

将可选的mysql字段设置为接受NULL。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12132811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档