What type of format should I use when using $wpdb->insert on a double?

I am going to be storing 3 pieces of info into my DB: the post_id, a trans_id, and a trans_amount (money). An example of a trans_id looks like 9q5fcs so I reason that I should use %s for string. How can I have the $wpdb object store trans_amount as a double?

The post_id is simply the post id that gets returned when using the same insert function. I am using it in a another block of code before this. However, when I set its format to be inserted as %d, it does not get inserted in the DB. The DB field is set to int(11).

Read More

Code:

global $wpdb;

        $wpdb->insert( $wpdb->prefix . 'fd_transactions', array( 'trans_amount' => $amount), '%s');
        $wpdb->insert( $wpdb->prefix . 'fd_transactions', array( 'post_id' => $_SESSION['fd_post_id']), '%d');
        $wpdb->insert( $wpdb->prefix . 'fd_transactions', array( 'trans_id' => $trans_id), '%s');

Related posts

1 comment

  1. % - a literal percent character. No argument is required.
    b - the argument is treated as an integer, and presented as a binary number.
    c - the argument is treated as an integer, and presented as the character with that ASCII value.
    d - the argument is treated as an integer, and presented as a (signed) decimal number.
    e - the argument is treated as scientific notation (e.g. 1.2e+2). The precision specifier stands for the number of digits after the decimal point since PHP 5.2.1. In earlier versions, it was taken as number of significant digits (one less).
    E - like %e but uses uppercase letter (e.g. 1.2E+2).
    f - the argument is treated as a float, and presented as a floating-point number (locale aware).
    F - the argument is treated as a float, and presented as a floating-point number (non-locale aware). Available since PHP 4.3.10 and PHP 5.0.3.
    g - shorter of %e and %f.
    G - shorter of %E and %f.
    o - the argument is treated as an integer, and presented as an octal number.
    s - the argument is treated as and presented as a string.
    u - the argument is treated as an integer, and presented as an unsigned decimal number.
    x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
    X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).
    
    
    
    string  s
    integer     d, u, c, o, x, X, b
    double  g, G, e, E, f, F
    

    what happen if you don’t pass data types ?

    it takes data type as a string 
    
    
    For Double 
    you can use g, G, e, E, f, F any of these according to your value
    

Comments are closed.