我的函数必须将一些数据写入数据库表,但在函数完成后,我在phpmyadmin中看不到添加的信息。这是我试图运行的代码
function q_cart_add($node) {
global $user;
//drupal_set_title('Добавление товара в корзину');
drupal_set_title('Товар добавлен в корзину');
if (!user_access('add to cart'))
return '<p>У вас не достаточно прав для добавления в корзину</p>';
if ($node->type != 'kartochka')
return '<p>В корзину можно положить только товар</p>';
$added = false;
if ($user->uid) {
$added = db_result(db_query('SELECT `added` FROM {q_cart} WHERE `uid` = %d OR `nid` = %d', $user->uid, $node->nid));
if (!$added) {
db_query('INSERT INTO {q_cart} (`uid`, `nid`, `added`) VALUES (%d, %d, %d)', $user->uid, $node->nid, time());
}
} else {
foreach (isset($_COOKIE['q_cart']) && ($cart = json_decode($_COOKIE['q_cart'])) ? $cart : array() as $item)
if ($item->nid == $node->nid) {
$added = true;
break;
}
if (!$added) {
$cart[] = array(
'nid' => $node->nid,
'added' => time(),
);
setcookie('q_cart', json_encode($cart), strtotime('+1 week'), '/');
}
}
//if (!$added) return '<p>Товар добавлен в корзину.</p>'.l('Корзина', 'cart', array('attributes' => array('target' => '_top', 'class' => 'button-link'))).'<a href="javascript://" onclick="parent.Lightbox.end(\'forceClose\');" class="button-link">Позже</a>';
if (!$added) {
drupal_add_js('$(document).ready(function(){parent.document.getElementById("bottomNavClose").style.display = "none";parent.document.getElementById("lightbox").style.top = "200px";});', 'inline');
return l('Корзина', 'cart', array('attributes' => array('target' => '_top', 'class' => 'button-link'))) .
'<a href="/node/' . $node->nid . '" target ="_top" class="button-link">Позже</a>';
//'<a href="javascript://" onclick="parent.Lightbox.end(\'forceClose\');" class="button-link">Позже</a>';
} else {
return '<p>Товар уже есть в вашей корзине.</p>';
}
}
答案 0 :(得分:0)
请将db_query更改为mysql_query并添加或删除(mysql_error())。它应该解释为什么添加失败。
例如:mysql_query('INSERT INTO {q_cart}(uid
,nid
,added
)VALUES('。$ user-&gt; uid。','。$ node - &gt; nid。','。time()。')')或死(mysql_error());