0

挿入プロセスがあります。私の開発は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);

ここでの問題は、 value を挿入していないことです$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);

正常に機能しており、値を正しく挿入しています。しかし、脆弱なので、この方法で挿入したくありません。

上記のものが機能しない理由を知りたいです。誰かが私が間違っていた場所を提案できますか?

4

1 に答える 1