Вставка данных в таблицу базы данных Wordpress - PullRequest
1 голос
/ 11 марта 2020

В настоящее время я работаю над фрагментом кода, который вставляет данные из недавней загрузки в базу данных. Я пробовал разные способы заставить его работать, но он не работает.

Сначала я попробовал следующее:

$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// check upload status 
if (!$upload) { 
echo "Er is iets fout gegaan, excuses voor het ongemak";
} else {
  $sql = "INSERT INTO table (id, name) VALUES (1, 'Cake')";
  var_dump(error_get_last($sql));

var_dump(error_get_last($sql)); возвращает NULL. Я не знаю, почему, соединение не требуется, так как Wordpress автоматически устанавливает соединение с базой данных.

Я также попробовал следующее:

$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// check upload status 
if (!$upload) { 
echo "Er is iets fout gegaan, excuses voor het ongemak";
} else {
// insert data in de database
$sql = "INSERT INTO $wpdb->wpex_programma (id, naam) VALUES (2, 'Country Kickin 2')";
$prepare_query = $wpdb->prepare($sql);
$result = $wpdb->sql($prepare_query);
echo '<pre>';
print_r($result);

Обычно, когда пользователь загружает файл Пользователь может просмотреть свой файл на странице. Из-за этого кода это было невозможно больше. Я не знаю, как ее решить.

Это полный оператор if и else:

if ((!$conn_id) || (!$login_result)) { 
    echo "Het spijt ons, er is momenteel geen connectie met de server.";
    // echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
    exit; 
} else {
     // echo "upload is gelukt";
}

// upload het bestand
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// check upload status 
if (!$upload) { 
echo "Er is iets fout gegaan, excuses voor het ongemak";
} else {
// insert data in de database
$sql = "INSERT INTO $wpdb->wpex_programma (id, naam) VALUES (2, 'Country Kickin 2')";
$prepare_query = $wpdb->prepare($sql);
$result = $wpdb->sql($prepare_query);
echo '<pre>';
print_r($result);

// weergeef het bestand & download
    $contents = ftp_nlist($conn_id, $destination_folder);
    // doe dit aan als er ergens een error is: var_dump(error_get_last($contents));

   foreach ($contents as $mp3_url) { 
    $filename = basename($mp3_url, ".mp3");
// dit zorgt ervoor dat de punten niet te zien zijn.
if($filename == "..") {
  continue;
  print_r($filename);
}

if($filename == ".") {
  continue;
  print_r($filename);
}
?>

Кроме того, переменная $ result возвращает NULL, когда var_dump(error_get_last($result));

РЕДАКТИРОВАТЬ:

Я изменил:

else {
// insert data in de database
$sql = "INSERT INTO $wpdb->wpex_programma (id, naam) VALUES (2, 'Country Kickin 2')";
$prepare_query = $wpdb->prepare($sql);
$result = $wpdb->sql($prepare_query);
echo '<pre>';
print_r($result);

на:

else {

    // insert data in de database
global $wpdb

$number_of_rows_inserted = $wpdb->insert('wpex_programma', [
  'naam' => 'Country kickin 2'
]);
var_dump($number_of_rows_inserted);
print_r($result);

Ответы [ 2 ]

2 голосов
/ 11 марта 2020

замените

$sql = "INSERT INTO $wpdb->wpex_programma (id, naam) VALUES (2, 'Country Kickin 2')";
$prepare_query = $wpdb->prepare($sql);
$result = $wpdb->sql($prepare_query);

на

$number_of_rows_inserted = $wpdb->insert('wpex_programma', [
   'id' => 2,
   'naam' => 'Country kickin 2'
]);

var_dump($number_of_rows_inserted);

Метод insert выполняет подготовку, поэтому он вам не нужен.

Добавить global $wpdb; в начале вашей функции или файла, если это не сделано. Также попробуйте удалить строку 'id' => 2, поскольку для идентификатора должно быть установлено автоматическое увеличение.

0 голосов
/ 11 марта 2020

Вы используете несуществующий метод ($wpdb->sql()) для объекта wpdb.

Используйте $wpdb->query() для выполнения запроса INSERT.

$sql = "INSERT INTO {$wpdb->prefix}programma (id, naam) VALUES (2, 'Country Kickin 2')";
$query = $wpdb->prepare($sql);
$result = $wpdb->query($query);
var_dump($result); // int(1) on success OR bool(false) on failure
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...