【发布时间】:2016-05-17 16:12:06
【问题描述】:
如果我删除此代码一切正常,但我需要从收到的数据(序列化)中循环遍历产品。当我使用此代码时,它会中断,我不知道为什么。
$products = db_query("SELECT cart FROM ?:abandoned_cart WHERE user_id = ?s", $acId);
//fn_print_die($products);
$products = unserialize($products);
$shippingCost = db_get_field("SELECT shipping FROM ?:abandoned_cart WHERE user_id = ?s", $acId);
$tax = db_get_field("SELECT tax FROM ?:abandoned_cart WHERE user_id = ?s", $acId);
$orderTotal = db_get_field("SELECT order_total FROM ?:abandoned_cart WHERE user_id = ?s", $acId);
$email = db_get_field("SELECT email FROM ?:abandoned_cart WHERE user_id = ?s", $acId);
$sum=0;
//echo $products;
if (!empty($products)) {
foreach ($products as $product) {
$text .='
<tr>
<td><a href="http://'.$_SERVER['SERVER_NAME'].'?dispatch=products.view&product_id='.$product['product_id'].'"> <img title="" height="120" width="120" alt="" src="'.$product['main_pair']['detailed']['image_path'].'"></a></td>
<td><a href="#" style=" font-weight:bold; color:#333; font-size:13px; text-decoration:none;">'.$product['product'].'</a><a href="#"> <i></i></a><div style=" font-weight:bold; color:#333; font-size:12px; margin-top:4px; text-decoration:none;"> CODE: <span>'.$product['product_code'].'<!--product_code_update_2512012004--></span> </div></td>
<td style=" text-align:center;"><span style=" font-weight:bold; color:#333; font-size:12px; margin-top:4px; text-decoration:none;">$</span><span style=" font-weight:bold; color:#333; font-size:12px; margin-top:4px; text-decoration:none;">'.$product['price'].'</span> </td>
<td><div style="display: inline-block;vertical-align: top;width: 56px;"><input type="text" disabled value="'.$product['amount'].'" size="3" style="border:1px solid #c2c9d0; box-shadow:0 1px 3px rgba(0, 0, 0, 0.1) inset; border-radius:3px; float: left;height: 33px;text-align: center;width: 36px;"></div></td>
<td style="font-size:14px; font-weight:bold; color:#333; text-align:center; font-size:13px; text-decoration:none;"><span>$</span><span stye=" color:#000;">'.$product['price']*$product['amount'].'</span> </td>
</tr>';
$sum =$sum+$product['price']*$product['amount'];
}
}
在日志中:
[Mon Feb 08 03:59:42 2016] [error] [client 90.199.142.58] PHP 警告:unserialize() 期望参数 1 是字符串,对象在 /home/ambcom/public_html/staging/beanbags/ app/addons/abandoned_cart_extended/controllers/backend/ac.php 在第 24 行,referer:/admin.php?dispatch=cart.cart_list
实际上是反序列化中断了。我试过只删除那部分,其余的都可以。现在是凌晨 4 点,当我需要在办公室时,我需要在早上 9 点之前完成这项工作。
【问题讨论】:
-
错误信息对我来说似乎很清楚
-
也许对你来说哈哈,但我对 PHP 太陌生了,不知道如何修改来解决它:(
-
db_query不是 php 核心函数,所以不知道它在做什么。var_dump($products)应该告诉你更多 -
试试
$products = db_get_field("SELECT cart FROM ?:abandoned_cart WHERE user_id = ?s", $acId);