Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WordPress $wpdb->get_row() Query Won't Work With Variable, But Works With Hardcoded

Tags:

wordpress

My code is correct (I've been programming for 13 years), but for some reason when I use a variable in a SELECT query in the WHERE clause, I get no result. If I hardcode it, it works. How could this be? Blowing my mind...

$track = $wpdb->get_row($wpdb->prepare("SELECT tracking_id, order_id, outbound_tracking_number, return_tracking_numbers FROM wp_woocommerce_trackingnumbers WHERE order_id = %s", $o_id));

Thanks!

like image 495
Allen Gingrich Avatar asked Dec 12 '25 08:12

Allen Gingrich


1 Answers

I think it should be (%s should be %d)

$track = $wpdb->get_row($wpdb->prepare("SELECT tracking_id, order_id, outbound_tracking_number, return_tracking_numbers FROM wp_woocommerce_trackingnumbers WHERE order_id = %d", $o_id));

%s for strings and %d for digits and variable $o_id sounds like an integer to me.

like image 123
The Alpha Avatar answered Dec 15 '25 04:12

The Alpha



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!