Possible to use MySQL functions in insert, update, replace? (3 posts)

  1. kwc_jr
    Posted 2 years ago #

    I cannot figure out how to use MySQL functions, such as NOW(), in $wpdb->insert(), ->update() or ->replace()? The same is true of a MySQL bit string (e.g., v=b'0101010'). None of the available data types (%d, %s, %f) seem to allow them through.

    The only way I have been able to do this is by doing my own "prepare" and then using $wpdb->query() with "INSERT INTO ... ", "UPDATE ..." or "REPLACE...".

    If I have missed how to do this, please let me know. Otherwise, it would be nice to have %b for bit strings (b'xxxx') rather than %s and also %u (or something) that does not do any quoting or processing of that replacement value (e.g., NOW(), or any MYSQL function or calculation).

  2. kbjogja
    Posted 2 years ago #

    it just give the user databse previlage to access mysql databse

  3. bcworkz
    Posted 2 years ago #

    $wpdb does a lot more than give database access privilege, but it only is intended to support a small group of data types: float, integer, string. $wpdb->query() fortunately allows pretty much unfettered queries so you are saved from the need to create another connection. I believe with any other $wpdb method you will run up against data type restrictions, so you've probably done the only thing you could do.

    The array $wpdb->field_types looks intriguing though. Perhaps adding your column and data types here could be a workaround. Couldn't say for sure, but may be worth experimenting with if you feel like it. See the source for wp_set_wpdb_vars() in wp-includes/load.php for background info.

Topic Closed

This topic has been closed to new replies.

About this Topic