2013-12-16 7 views
7

ここで下位部分をソートしましたが、レコードを挿入するときに問題が発生しました。私は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)がそのデータがまだ存在しないので真を返すことを知っています。

問題が見つかりました。期間がなくなったためにget_resultsクエリが失敗しました。私のHS英語教師は正しいです...逃した期間は大きな問題になることができます!

答えて

5

あなたの設定でエラーが表示されないことがあります。あなたは$wpdb->print_error();を試しましたか?

+0

ええ、どこにでもあります。各insert文の後と 'if(!)'文の中に挿入します。それは何も戻っていない。 – KingRichard

+0

それをいくつかの場所に追加して、そして、もちろん、エラーを見つけました。不正なクエリバンドルありがとう。 – KingRichard

+0

'blob'でフォーマットされたカラムにデータを挿入するためのデータフォーマット呼び出しを知ることはありませんか?ヌル値が必要で、stringの '%s'が機能していません。 – KingRichard

10

あなたは$ wpdbオブジェクトのこのプロパティを使用することができ、最後のエラーと最後のクエリを取得したい場合:

$wpdb->last_error 

を使用すると、1つを得た場合、あなたに最後のエラーが表示されます。

$wpdb->last_query 

は、私は、これはあなたを助けることを願っています(エラーが発生した)最後のクエリ

を示すとのお手伝いをいたします。

関連する問題