0

こんにちは私はdrupalからmysqlに日付を挿入するのにほとんど問題がありませんここに私が試しているコード

.....
$form['kotak']['tgl'] = array(
'#type' => 'date',
'#title' => t('Tanggal'),
);
.....
function awal_form_submit($form,&$form_state){
global $user;
$entry = array(
 'tanggal'  => $form_state['values']['tgl'],
);
$tabel = 'jp_1';
$return = insert_form($entry,$tabel);
}
.....
function insert_form($entry,$tabel){
$return_value = NULL;
try {
 $return_value = db_insert($tabel)
                ->fields($entry)
                ->execute();    
}
.....

送信するたびに、このようなエラーコード

db_insertが失敗しました。メッセージ=SQLSTATE[21S01]:挿入値リストが列リストと一致しません:1136列数が行1の値数と一致しませんquery = INSERT INTO {jp_1}(tanggal)VALUES(:db_insert_placeholder_0_month、:db_insert_placeholder_0_day、:db_insert_placeholder_0_year)

何か提案や修正はありますか?

4

2 に答える 2

0

mysqlエラーから、作成したテーブルには必須フィールドがあるように見えます(columns Nullプロパティは0に設定されています。これは、挿入するすべての行にtha列の値が必要であることを意味します)

nullが0に設定されている列があるかどうかを確認します。

あなたの例からは、あなたが何を達成しようとしているのかわかりませんが、コンテンツタイプ(ノード)を作成することで同じ結果を簡単に得ることができるため、多くの場合、手動でdbテーブルに書き込む必要はありません(db_insert()を使用)タイプ)あなたのために多くの機能を処理します。マーティン、お役に立てば幸いです

于 2012-04-25T15:46:02.640 に答える
0

私はついに答えを見つけることができました。必要なのは「Date」モジュールをダウンロードしてその「DateAPI」をアクティブ化することだけです。ここにコード

.....
$datex = '2005-1-1';
$format = 'Y-m-d';
$form['kotak']['tgl'] = array(
'#type' => 'date_select',
'#default_value' => $datex,
'#date_format' => $format,
'#date_year_range' => '-10:+30', 
'#title' => t('Tanggal'),
);
.....
function awal_form_submit($form,&$form_state){
global $user;
$entry = array(
 'tanggal'  => $form_state['values']['tgl'],
);
$tabel = 'jp_1';
$return = insert_form($entry,$tabel);
}
.....
function insert_form($entry,$tabel){
$return_value = NULL;
try {
 $return_value = db_insert($tabel)
                ->fields($entry)
                ->execute();    
}
.....

そして今、私はmysqlに配信するのに問題はありません。それが私のような他のDrupal初心者開発者に役立つことを願っています。ありがとう

于 2012-05-01T13:06:54.990 に答える