我遇到了问题,如果我从数据库中检索记录,它将以字符串形式返回。但我不希望这样,因为它应该是一个数组:
var_dump($data)
返回
string(654) "Array ( [0] => Array ( [1] => 17-6-2015 [2] => Livingwater TEST [3] => J. Luttik [4] => E. Luttik [5] => Annemarie, Rosy [id] => 7 ) [1] => Array ( [1] => 21-6-2015 [2] => Celebration [3] => P. Brenner [4] => B. Nobbe [5] => Heleen, Laurens [id] => 8 ) [2] => Array ( [1] => 24-6-2015 [2] => Celebration [3] => C. Visser [4] => E. Luttik [5] => Annet, Elsemijn [id] => 9 ) ) "
我该如何解决这个问题?
答案 0 :(得分:4)
我想我已经得到它,它存储错误到数据库中。它应存储为json_encode($data)
,并作为json_decode($data, true)
进行检索。
但另一种方法是将其存储为serialize($data)
并使用unserialize($data)
答案 1 :(得分:2)
我会使用one()在db和http://doc.qt.io/qt-4.8/qthread.html#run中保存信息,以将其检索为可用的内容。我相信这是最好的方法。你也可以使用json_encode和json_decode,但我更喜欢[un] serialize
答案 2 :(得分:2)
好的,显而易见的事实是存储的数据存储错误!要将此字符串重建为数组,您必须做的不仅仅是以正确的方式存储它。
所以解决方案可能来自@sanderbee:Convert var_dump of array back to array variable
或者我建议的解决方案是以正确的方式存储它们。
数据是一个数组,因此这意味着多数据。要么将其保存为序列化字符串,那么您可以将其反序列化,或者我认为更好的解决方案是数据库内的 1-N 关系,例如:
表:人类
行:
表:宠物
所以 1(ONE)人类可以拥有 N(0到无限远)宠物。
表:人类
表:宠物
因此,虽然乔治布什有3只宠物:一只狗,一只猫和一只海豚。巴拉克•奥巴马(Barack Obama)只是把宠物当作宠物。
通过这种方式,您可以使用JOIN语句轻松地使用一个SQL查询获取所有数据。
$db->query( 'SELECT Human.Name, Pets.race FROM Human JOIN Pets ON ( Human.id = Pets.Human_ID ) ' );
看起来比反序列化要多得多吗?但是更清洁,如果你有很多数据,数据库将比......或者它应该快得多......它也更清洁。对我来说看起来更专业。
修改强>
您的个人资料看起来已经足以让您知道这一点了......您是否有可能去过"在数据库中使用此记录?如果是这样,那么sanderbee的第一个选择是"必须做" ..