Я работаю на плагин WordPress в настоящее время, и уже создали таблицу с моим плагином в следующем стиле:WordPress wpdb-> вставка/обновление не работает
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id INTEGER NOT NULL AUTO_INCREMENT,
post_id INTEGER NOT NULL,
lat FLOAT NOT NULL,
lng FLOAT NOT NULL,
str VARCHAR(55),
plz INTEGER,
ort VARCHAR(20),
UNIQUE KEY id (id))
Я могу видеть, что БД существует через «MySQL Query Browser» ...
И хочу, чтобы вставить некоторые Infos в таблицу со следующим кодом:
(ул, плз, орт не нужны, поэтому я хотел, чтобы они еще не заполнены ...)
И я верю, что идентификатор будет увеличиваться автоматически каждый раз, когда я что-то вставляю, даже если я не совсем уверен, что мне даже нужен идентификатор как ключ, потому что у каждого сообщения будет только одна запись, так что post_id может быть ключ тоже ...
function install_data($latlng, $post_id) {
global $wpdb;
if (! $wpdb->update($table_name, array('lat' => $latlng[0], 'lng' => $latlng[1]), array('post_id' => $post_id)))
{
$wpdb->insert($table_name, array('post_id' => $post_id, 'lat' => $latlng[0], 'lng' => $latlng[1]));
}
$wpdb->show_error();
$wpdb->print_error();
}
Я попробовал обе ошибки .. Но не видел в консоли ... ни в error_log ...
Я также попытался удалить функцию обновления снова, но он все еще ничего не помог ...
ОК ..
Это немного странно, но я решил половину его XD
function install_data($latlng, $post_id) {
global $wpdb;
require_once(ABSPATH . 'wp-config.php');
if (! $wpdb->update($table_name, array('lat' => $latlng[0], 'lng' => $latlng[1]), array('post_id' => $post_id)))
{
$wpdb->insert($table_name, array('post_id' => $post_id, 'lat' => $latlng[0], 'lng' => $latlng[1]));
}
$wpdb->show_error();
$wpdb->print_error();
}
Теперь это только обновление, которое не работает ...
И он перестал работать снова .. А у меня просто не знаю, почему ... Кроме чтения не работает, либо ...
function read_data($post_id) {
global $wpdb;
require_once(ABSPATH . 'wp-config.php'); //Just a try, cause insert worked afterwards... for a short time -.-
$latlng = $wpdb->get_results("SELECT lat, lng FROM $table_name WHERE post_id = '$post_id'");
return $latlng;
}
$ wpdb-> update вернет false, поэтому используйте === false – ShiftyThomas