Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Mysql中将对象属性设置为null_Php_Mysql_Json - Fatal编程技术网

Php 如何在Mysql中将对象属性设置为null

Php 如何在Mysql中将对象属性设置为null,php,mysql,json,Php,Mysql,Json,我正在上传一个对象列表到MySQL。 有些对象不包含相同数量的变量。比如说 Objectt1 { property1 property 2 } Objectt2 { property1 property2 property3 } Objectt3 { property1 } 我的问题是mysql中的Object3被赋予了property2和property3,而不是NULL。该值是从Object2获取的。如何使对象3的Property2和property3为空?php代码如下:(我想我理解

我正在上传一个对象列表到MySQL。 有些对象不包含相同数量的变量。比如说

Objectt1 {
property1
property 2
}

Objectt2 {
property1
property2
property3
}

Objectt3 {
property1
}
我的问题是mysql中的Object3被赋予了property2和property3,而不是NULL。该值是从Object2获取的。如何使对象3的Property2和property3为空?php代码如下:(我想我理解它为什么这样做,因为变量已经在循环的前一次运行中设置好了。但是我不知道如何修复它。)


null
分配给每个迭代中缺少的属性,以便前一个值不会绑定到查询:

foreach($data as $row){
    $ID = $row['id'];
    $prop1 = isset($row['prop1'])? $row['prop1']: null;
    $prop2 = isset($row['prop2'])? $row['prop2']: null;
    $prop3 = isset($row['prop3'])? $row['prop3']: null;

    $result = $createworkoutquery->execute();
    ...
}

null
分配给每个迭代中缺少的属性,以便前一个值不会绑定到查询:

foreach($data as $row){
    $ID = $row['id'];
    $prop1 = isset($row['prop1'])? $row['prop1']: null;
    $prop2 = isset($row['prop2'])? $row['prop2']: null;
    $prop3 = isset($row['prop3'])? $row['prop3']: null;

    $result = $createworkoutquery->execute();
    ...
}

我注意到的一件事是prpop2的错误销售

if (isset($row["prpop2"])) {
    $prop2 = $row["prop2"];
}

我注意到的一件事是prpop2的错误销售

if (isset($row["prpop2"])) {
    $prop2 = $row["prop2"];
}


一些合理的代码缩进将是一个好主意。它帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会在几周/几个月内被要求修改此代码,最后您会感谢我。如果您有很多属性,并且您希望有很多空值,为什么不重新构造您的表,以便它允许您具有可变属性?例如,
id | object | id | property | name | property | value
get|u magic|u quotes|gpc()
已被硬编码为返回
false
。除非您使用的是非常旧的服务器,否则您应该能够安全地将其删除。还有,您的ID是字符串吗?“ssss”表示是的。@miken32谢谢你指出这些。我一直在看一些来自很多网站的老教程,所以它们的代码并没有真正更新。我的Id被插入到一个整数列中,如果我将其保留为s,我将来会遇到问题吗?如果有人试图破坏你的数据库,你可能会遇到问题。PHP不会阻止某人尝试插入非数字数据。也许只有把事情做好才好。PHP经历了很多变化,并且一开始非常糟糕。您应该使用PHP7,并密切关注文章中的日期。在2012年之前的任何事情都应该被忽略,除非你能用一个新的源代码来证实。一些合理的代码缩进将是一个好主意。它帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会在几周/几个月内被要求修改此代码,最后您会感谢我。如果您有很多属性,并且您希望有很多空值,为什么不重新构造您的表,以便它允许您具有可变属性?例如,
id | object | id | property | name | property | value
get|u magic|u quotes|gpc()
已被硬编码为返回
false
。除非您使用的是非常旧的服务器,否则您应该能够安全地将其删除。还有,您的ID是字符串吗?“ssss”表示是的。@miken32谢谢你指出这些。我一直在看一些来自很多网站的老教程,所以它们的代码并没有真正更新。我的Id被插入到一个整数列中,如果我将其保留为s,我将来会遇到问题吗?如果有人试图破坏你的数据库,你可能会遇到问题。PHP不会阻止某人尝试插入非数字数据。也许只有把事情做好才好。PHP经历了很多变化,并且一开始非常糟糕。您应该使用PHP7,并密切关注文章中的日期。2012年之前的任何事情都应该被忽略,除非你能用一个新的来源来证实它+1@RiggsFolly这不是经常发生的事,对我来说,或者你是说+1@RiggsFolly我的意思是我要把你揍个精光。我们先把问题删掉,然后在几秒钟内把我揍个精光+1@RiggsFolly这在我身上并不常见,或者你是说+1@RiggsFolly我的意思是我要揍你一顿。那我们就把问题删掉吧