此处的下半部分已排序,但现在插入记录时出现问题。对于字符串,NULL
的{{1}}值为file
格式,但它不插入%s
它插入NULL
。 mySQL表中的列格式为[BLOB - 0B]
。有什么想法吗?
这是我第一次使用longblob
,看起来我错过了什么。
这是我正在尝试使用的循环。目前阵列中有2个时间戳。
$wpdb->insert
我知道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 )
将返回true,因为该数据尚不存在。
发现了这个问题。由于错过了一段时间,get_results查询失败了。我的HS英语老师是对的......错过了一段时间可能是一个巨大的问题!
答案 0 :(得分:11)
如果您想获取上一个错误和上一个查询,可以使用 $ wpdb 对象的此属性:
$wpdb->last_error
如果你有错误,会显示最后一个错误。
$wpdb->last_query
将帮助您显示最后一个查询(发生错误的位置)
我希望这会帮助你。
答案 1 :(得分:6)
也许你的配置隐藏了错误显示。你试过$wpdb->print_error();
吗?
答案 2 :(得分:1)
https://core.trac.wordpress.org/ticket/32315
列输入之一可能比列大。 WordPress会检测到这一点,甚至不会将查询发送到数据库。
那里的Diff显示了wp-db的补丁,您可以将其放入last_error消息中以获取更多信息,因此该消息不会为空。
答案 3 :(得分:1)
希望您定义了全局变量= $ wpdb。
如果$ wpdb无法正常工作,并且也未显示任何错误,则必须尝试以下三个步骤。
使用带有错误功能的错误打印。
echo $wpdb->last_error;
or
echo $wpdb->show_errors();
如果看不到错误,则必须使用带有上一个查询功能的上一个查询。
echo $wpdb->last_query();
将您的最后一个查询复制并粘贴到Phpmyadmin>“数据库”->“表”->“ SQL”选项卡中,单击“执行”按钮,您肯定会在其中获得适当的解决方案(错误)。
谢谢
Rocky Mehta。