【发布时间】:2014-04-28 08:43:02
【问题描述】:
简而言之,我的数据是用 Javascript 编写的:
JSONdata = {
name: form.name.value,
address1: form.custa.value,
address2: form.custa2.value,
postcode: form.custpc.value,
order: fullorder,
cost: document.getElementById('total')
}
fullorder 是要订购的产品数组。 :
[{"idnum":"2","cost":232,"quantity":"1"},{"idnum":"1","cost":2342,"quantity":"3"}]
我有一个 XJAX 可以将这些数据字符串化,如下所示:
{"name":"j","address1":"jh","address2":"jhj","postcode":"h","order":[{"idnum":"2","cost":232,"quantity":"1"},{"idnum":"1","cost":2342,"quantity":"3"}],"cost":{}}
在 PHP 中它以数组的形式给出:
Array
(
[0] => stdClass Object
(
[idnum] => 2
[cost] => 232
[quantity] => 1
)
[1] => stdClass Object
(
[idnum] => 1
[cost] => 2342
[quantity] => 3
)
)
我的问题是如何将其存储在数据库中? 我试过 serialize 和 json_encode 但都给了我一个: “stdClass 类的对象无法转换为字符串”。
任何帮助将不胜感激!
-> 不用担心查询数据库和JSON之争。 我将立即获取所有数据,所以这不是问题:)
编辑:感谢大家的回复,我给你一些关于它是如何工作的信息:
所以当我将 JSON 发送到我的 PHP 时,我有一个脚本可以像这样提取所有数据:
$intel = extractdata();
function extractdata() {
if (isset($_REQUEST['data'])){
$jsonDump = json_decode($_REQUEST['data']);
foreach($jsonDump as $key => $value) {
$obj[$key] = $value;
}
return $obj;
}
所以这给了我
$intel['name'] = // form.name.value variable
$intel['address1'] = // form.name.value variable
$intel['order'] 给了我上面看到的 PHP 数组。我想将所有这些存储到数据库中的列中:Customername、address1、address2、postcode、order、cost
我认为只是 $neworder = json_encode($intel['order']) 可以让我将其存储在数据库中,但它仍然会引发转换错误。
谢谢
【问题讨论】:
-
标准化您的数据库并将其存储在多个列中。
-
那么,哪一行代码实际上抛出了这个错误?很高兴您向我们展示了数据(没有讽刺),但这只是应用程序的一部分;-)
-
@N.B.:不必居高临下。
-
标记为 PHP,但不存在 PHP 代码。显然是尝试将 PHP 数据结构存储到数据库中的问题,而不是现有的字符串形式(通过 HTTP 接收,已序列化 JSON)。
-
@Cerbrus - 我不是,也不是想侮辱,这个人显然有能力,但他只是从树上看不到森林.
标签: javascript php mysql ajax json