I have this php script that generate an sql query. However, it needs a semicolon inside the sql statement and because of that, the sql query doesn’t work.
VALUES ('Installed Modules', 'MODULE_BOXES_INSTALLED', 'bm_shopping_cart.php;bm_categories.php', 'This is automatically updated. No need to edit.', '6', '0', now())
It is included in this function.
function insert_configuration6_table($table_name9, $type) {
global $wpdb;
if (!empty ($wpdb->charset))
$charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
if (!empty ($wpdb->collate))
$charset_collate .= " COLLATE {$wpdb->collate}";
$sql = "INSERT INTO {$table_name9} (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('Installed Modules', 'MODULE_BOXES_INSTALLED', 'bm_shopping_cart.php;bm_categories.php', 'This is automatically updated. No need to edit.', '6', '0', now()),('Installed Template Block Groups', 'TEMPLATE_BLOCK_GROUPS', 'boxes', 'This is automatically updated. No need to edit.', '6', '0', now());";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
I have searched a lot for this however, I can’t find a solution that work.
How can I make an sql query that includes a semicolon(;) in the values?
Thanks.
The SQL Statement/syntax seems wrong. You should only have one bracket set for Values, instead you have two separated by comma. Shouldn’t it be as follows?Never mind, that was incorrect. I also think that there shouldn’t be any problem with a semicolon in a SQL query; what’s the actual error that you are getting?
As I landed here from Google, I’ll add my solution even if this is very old question.
For a simple way of using semicolons or whatever other special characters in php sql query one can encode the string.
In php encode string first
Then in the query use for example
The reverse would be to use base64_dedode and TO_BASE64()