问题
Got the lower portion here sorted, but now there's an issue when it inserts the record. I have the NULL
value for file
formatted as %s
for string, but it's not inserting NULL
it's inserting [BLOB - 0B]
. The column format in the mySQL table is longblob
. Any ideas?
this is my first time using $wpdb->insert
and it looks like I've missed something.
Here's the loop I'm trying to use. There are currently 2 timestamps in the array.
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';
}
}
}
I know that $working_time
and $working_form
are both set properly. $working_time
is a long float like 1387175380.9600
and $working_form
is a string.
Nothing is being returned, even by the if( !$insert )
check so I'm guessing it's erring somewhere before that point. I know that if( !$result )
will return true because that data does not exist yet.
Found the issue. The get_results query was failing due to a missed period. My HS English teacher was right... a missed period can be a HUGE problem!
回答1:
Maybe your config hides error showing. Have you tried $wpdb->print_error();
?
回答2:
If you want to get the last error and last query you can use this properties of $wpdb object:
$wpdb->last_error
will show you the last error, if you got one.
$wpdb->last_query
will assist you with showing the last query (where the error occurred)
I hope this will help you out.
回答3:
https://core.trac.wordpress.org/ticket/32315
One of the columns inputs may be larger than the column is. Wordpress detects this and will not even send the query to the DB.
The Diff there shows a patch for wp-db you can put in to get more information in the last_error message so it will not be empty.
回答4:
Hopefully, you define global variable = $wpdb.
If your $wpdb not working, and also not showing any error then you must try these three steps.
Print your error using with errors functions.
echo $wpdb->last_error;
or
echo $wpdb->show_errors();
If no error visible then you must print your last query using with last query function.
echo $wpdb->last_query();
Copy and paste your last query in your Phpmyadmin > Your Database -> Table -> SQL tab, click on Go button, you will definitely get proper solutions(errors) in it.
Thanks,
Rocky Mehta.
来源:https://stackoverflow.com/questions/20605937/wpdb-insert-not-working-no-error-msg