Intereting Posts
Возврат всех параметров переключателя при использовании дополнительных пользовательских полей Страница имеет родительский и $ post-> post_parent возвращает 0 Расширенные пользовательские поля комментариев Проверьте, существует ли почта Подкатегории сохраняют переадресацию на страницы с одинаковыми слизнями статическая страница с несколькими циклами разрывов после разбивки на страницы Категория с описанием и миниатюрами Попытка получить свойство не-объекта в wp-includes / capability.php Сделать нужное изображение Как получить внешние данные входа (сеанс) в WordPress? Замените заголовок изображения его заголовком и описанием Есть ли способ только получать сообщения с одним или несколькими большими пальцами вверх (плагин рейтинга звезд GD)? Какую таблицу хранит порядок сортировки носителей? Размер вложения списка эхо-сообщений в сообщении url переписать .htaccess расширение на permalink

Как подготовить строки для вставки в качестве значений в таблицу MySQL?

Я пытаюсь вставить некоторые строки, содержащие дефисы и апострофы, в качестве значений в таблицу MySQL. Я назначаю строковое значение:

$venue_name = addslashes(get_the_title($id)); 

Когда я повторяю значение, я получаю:

 4B's Brewery 

а также

 Ace Hardware - Bailey 

Мои операторы SQL выглядят следующим образом:

  INSERT INTO wp_w2bw2c_venue (id, market_id, venue_status, venue_name, website, address_1, address_2, city, state, postal_code, phone, fax, email, logo_attachment_id, featured_image_attachment_id, tagline, description, doors_open, capacity, venue_type_id, salesperson_id, landing_page_id) VALUES (817, 7, 'Active', '4B's Brewery', 'http://4bsbrewery.com/', '215 W Main St', '', 'Cedaredge', 'Colorado', '81413', '970-856-7762', '', '', 0, 0, '', '', '', 0, '168', 89, 0) INSERT INTO wp_w2bw2c_venue (id, market_id, venue_status, venue_name, website, address_1, address_2, city, state, postal_code, phone, fax, email, logo_attachment_id, featured_image_attachment_id, tagline, description, doors_open, capacity, venue_type_id, salesperson_id, landing_page_id) VALUES (915, 7, 'Active', 'Ace Hardware – Bailey', '', 'Moore Lumber & Hardware', '', 'Bailey', 'Colorado', '', '720-924-3999', '', '', 0, 0, '', '', '', 0, '168', 89, 0) 

я использую

 dbDelta($sql); 

для обновления базы данных.

Но я получаю такие ошибки базы данных:

  WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''4B&#8217' at line 4] INSERT INTO wp_w2bw2c_venue (id, market_id, venue_status, venue_name, website, address_1, address_2, city, state, postal_code, phone, fax, email, logo_attachment_id, featured_image_attachment_id, tagline, description, doors_open, capacity, venue_type_id, salesperson_id, landing_page_id) VALUES (817, 7, 'Active', '4B&#8217 WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Ace Hardware &#8211' at line 4] INSERT INTO wp_w2bw2c_venue (id, market_id, venue_status, venue_name, website, address_1, address_2, city, state, postal_code, phone, fax, email, logo_attachment_id, featured_image_attachment_id, tagline, description, doors_open, capacity, venue_type_id, salesperson_id, landing_page_id) VALUES (915, 7, 'Active', 'Ace Hardware &#8211 

Специальные символы 'и – завершают строки. Я пробовал addlashes (), str_replace ('-', '- ", $ place_name) и mysql_real_escape_string (), без каких-либо успехов. Как подготовить строки для принятия в качестве значений столбца таблицы MySQL VARCHAR?

dbDelta действительно предназначен для создания баз данных или таблиц, а не для вставки записей.

Я бы предложил использовать $wpdb->insert() , который позволит избежать значений для вас:

 $wpdb->insert( $wpdb->prefix . 'w2bw2c_venue', array( 'market_id' => 7, 'venue_name' => get_the_title( $id ), ), array( '%d', '%s', ) ); 

Я только что использовал поле имени, в котором у вас были проблемы, в моем примере, очевидно, вы захотите заполнить остальные. Я включил market_id, чтобы показать правильное использование второго массива $format , гарантируя, что market_id анализируется как целое число.