加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读