ここで下部を並べ替えましたが、レコードを挿入するときに問題が発生します。 NULL
のfile
値は文字列の_%s
_としてフォーマットされていますが、NULL
を挿入していません。_[BLOB - 0B]
_を挿入しています。 mySQLテーブルの列形式はlongblob
です。何か案は?
_$wpdb->insert
_を使用するのはこれが初めてで、何かを見逃したようです。
これが私が使おうとしているループです。現在、配列には2つのタイムスタンプがあります。
_for ( $i = 0; $i < count($timestamps); $i++ ) {
$working_time = $timestamps[$i];
$working_form = $formnames[$i];
$status_data = array(
'submit_time' => $working_time,
'form_name' => $working_form,
'field_name' => 'lead_status',
'field_value' => 'new',
'field_order' => 10001,
'file' => NULL
);
$status_data_types = array(
'%f',
'%s',
'%s',
'%s',
'%d',
'%s'
);
$result = $wpdb->get_results("SELECT field_value FROM ".$leadtable." WHERE submit_time = ".$working_time);
if(!$result) {
$insert = $wpdb->insert($leadtable, $status_data, $status_data_types);
if( !$insert ) {
echo 'didn\'t work';
}
}
}
_
_$working_time
_と_$working_form
_の両方が正しく設定されていることを知っています。 _$working_time
_は_1387175380.9600
_のような長いフロートであり、_$working_form
_は文字列です。
if( !$insert )
チェックを行っても何も返されないので、その時点より前のどこかでエラーが発生していると思います。 if( !$result )
はデータがまだ存在しないため、trueを返すことを知っています。
問題が見つかりました。期間を逃したため、get_resultsクエリが失敗していました。私のHS英語教師は正しかったです...月経がないことは大きな問題になる可能性があります!
たぶんあなたの設定はエラー表示を隠します。 $wpdb->print_error();
を試しましたか?
最後のエラーと最後のクエリを取得する場合は、$ wpdbオブジェクトの次のプロパティを使用できます。
$wpdb->last_error
エラーが発生した場合は、最後のエラーが表示されます。
$wpdb->last_query
最後のクエリ(エラーが発生した場所)を表示するのに役立ちます
これがお役に立てば幸いです。
https://core.trac.wordpress.org/ticket/32315
列の入力の1つが、列よりも大きい場合があります。 Wordpressはこれを検出し、クエリをDBに送信しません。
そこにあるDiffは、last_errorメッセージでより多くの情報を取得するために挿入できるwp-dbのパッチを示しているため、空にはなりません。
うまくいけば、グローバル変数= $ wpdbを定義します。
$ wpdbが機能せず、エラーも表示されない場合は、次の3つの手順を試す必要があります。
Witherrors関数を使用してエラーを出力します。
_echo $wpdb->last_error;
_
or
echo $wpdb->show_errors();
エラーが表示されない場合は、最後のクエリ関数を使用して最後のクエリを印刷する必要があります。
echo $wpdb->last_query();
最後のクエリをコピーしてPhpmyadmin>データベース->テーブル-> SQLタブに貼り付け、[移動]ボタンをクリックすると、適切なソリューション(エラー)が確実に表示されます。
ありがとう、
ロッキーメタ。