Reputation: 70
I'm trying to retrieve a text value for my field from database using this query:
<input type="text" name="last_link" id="last_link" value="<?php global $wpdb; $user_ID = get_current_user_id(); $result= $wpdb->get_results( 'SELECT last_link FROM users WHERE ID = $user_ID'); echo $result; ?>"
I've searched a lot but all I could find is Class Reference/wpdb
and I was't able to find my mistake.
Upvotes: 3
Views: 12278
Reputation: 4116
USE $wpdb->get_var('your query')
instead $wpdb->get_results()
I have found Error in query which is you forget the table prefix that is required to retrieve info from wordpress pre defined tables.
Use global $table_prefix
along with $wpdb
Like this : global $wpdb,$table_prefix
Also make sure your column last_link
is added to tableprefix_users
's table
For your requirement use below code to retrieve info.
<?php
global $wpdb,$table_prefix;
$user_ID = get_current_user_id();
$last_link = $wpdb->get_var('SELECT last_link FROM '.$table_prefix.'users WHERE ID = '.$user_ID);
?>
<input type="text" name="last_link" id="last_link" value="<?php echo $last_link;?>">
As stated in Documentation
Generic, multiple row results can be pulled from the database with get_results. The function returns the entire query result as an array. Each element of this array corresponds to one row of the query result and, like get_row, can be an object, an associative array, or a numbered array. If no matching rows are found, or if there is a database error, the return value will be an empty array. If your $query string is empty, or you pass an invalid $output_type, NULL will be returned.
Upvotes: 5