这里的下半部分排序,但现在插入记录时出现问题.我有格式化为字符串的NULL
值,但它不插入它的插入.mySQL表中的列格式是.有任何想法吗?file
%s
NULL
[BLOB - 0B]
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();
吗?
https://core.trac.wordpress.org/ticket/32315
列输入之一可能比列大。WordPress会检测到这一点,甚至不会将查询发送到数据库。
此处的Diff显示了wp-db的补丁,您可以将其放入last_error消息中以获取更多信息,因此该消息不会为空。
如果要获取最后一个错误和最后一个查询,可以使用$ wpdb对象的这个属性:
$wpdb->last_error
会告诉你最后一个错误,如果有的话.
$wpdb->last_query
将帮助您显示最后一个查询(发生错误的位置)
我希望这会帮助你.