我有一个插入过程。我的开发是在 Drupal6 下。所以我使用以下方法插入数据库表。
$sid = $user->sid;
$data = array(
'nid' => $parent_nid,
'vid' => $parent_vid,
'uid' => $user_id,
'time_start' => time(),
'session_id' => $sid
);
drupal_write_record('quiz_node_results', $data);
问题在于,它没有插入值$sid
。它始终在该字段中插入默认值0。但是正确插入了其他值。但它有价值。我通过print_r($data)
检查了一下。
在数据库表中,session_id
字段的数据类型为varchar
。
为了快速修复,我编写了实际的插入查询并插入其中。该查询如下。
$sql = "INSERT INTO {quiz_node_results}(nid, vid, uid, time_start, session_id) VALUES(".$parent_nid.",".$parent_vid.",".$user_id.",".time().", '".$sid."')";
db_query($sql);
工作正常并正确插入值。但我不想以这种方式插入,因为它很脆弱。
我想知道为什么上面的那个不起作用。任何人都可以建议我哪里出错了吗?
答案 0 :(得分:0)
我非常确定从第1行改变第1行:
$sid = $user->sid;
到此:
$sid = isset($user->sid) ? $user->sid : session_id();
应该做的伎俩...