error trying to update data in 3 tables check the manual that corresponds to your MariaDB server

ygal brami :

I get an error when i try to run this query, heck the manual that corresponds to your MariaDB server version.... please check whats wrong and how to fix that? i have used this code to select 3 tables and its work great, i have modify it to update the data in 3 tables. hoping somone can help

$get_user_id = $_GET['id'];     
$userlogin = $_POST['user_login'];  
$nicename = $_POST['user_nicename'];

    UPDATE 
       wp_users, wp_usermeta, wp_ihc_user_levels


      FROM wp_users
           INNER JOIN wp_usermeta AS usermeta_firstname
                     ON wp_users.ID = usermeta_firstname.user_id
                    AND usermeta_firstname.meta_key = 'first_name'

            INNER JOIN wp_usermeta AS usermeta_lastname
                     ON wp_users.ID = usermeta_lastname.user_id
                    AND usermeta_lastname.meta_key = 'last_name'

            INNER JOIN wp_usermeta AS usermeta_original_link
                     ON wp_users.ID = usermeta_original_link.user_id
                    AND usermeta_original_link.meta_key = 'original_link'

            INNER JOIN wp_usermeta AS usermeta_new_link
                     ON wp_users.ID = usermeta_new_link.user_id
                    AND usermeta_new_link.meta_key = 'new_link'

            INNER JOIN wp_usermeta AS usermeta_exp_link
                     ON wp_users.ID = usermeta_exp_link.user_id
                    AND usermeta_exp_link.meta_key = 'exp_link' 


    INNER JOIN wp_ihc_user_levels ON wp_ihc_user_levels.user_id = wp_users.ID


    SET wp_usermeta.user_login = '21'
        wp_usermeta.user_nicename = '$nicename',
        wp_usermeta.user_email = '$email',
        wp_usermeta.user_registered = '$registered',
        wp_usermeta.user_activation_key = '$activation',
        wp_usermeta.user_status = '$status',
        wp_usermeta.display_name = '$display_name',
        usermeta_original_link.meta_key = '$original',
        usermeta_new_link.meta_key = '$new',
        usermeta_exp_link.meta_key = '$exp_link',
        wp_ihc_user_levels = '$level'   



    WHERE wp_users.ID = '$get_user_id'           
Gordon Linoff :

I think the syntax you want is:

UPDATE wp_users JOIN
       wp_usermeta usermeta_firstname
       ON wp_users.ID = usermeta_firstname.user_id AND
          usermeta_firstname.meta_key = 'first_name' JOIN
       wp_usermeta usermeta_lastname
        ON wp_users.ID = usermeta_lastname.user_id AND
           usermeta_lastname.meta_key = 'last_name' JOIN
       wp_usermeta AS usermeta_original_link
       ON wp_users.ID = usermeta_original_link.user_id AND
         usermeta_original_link.meta_key = 'original_link' JOIN
       wp_usermeta usermeta_new_link
       ON wp_users.ID = usermeta_new_link.user_id AND
          usermeta_new_link.meta_key = 'new_link' JOIN
       wp_usermeta usermeta_exp_link
       ON wp_users.ID = usermeta_exp_link.user_id AND
          usermeta_exp_link.meta_key = 'exp_link' JOIN
       wp_ihc_user_levels
       ON wp_ihc_user_levels.user_id = wp_users.ID
    SET wp_usermeta.user_login = '21'
        wp_usermeta.user_nicename = '$nicename',
        wp_usermeta.user_email = '$email',
        wp_usermeta.user_registered = '$registered',
        wp_usermeta.user_activation_key = '$activation',
        wp_usermeta.user_status = '$status',
        wp_usermeta.display_name = '$display_name',
        usermeta_original_link.meta_key = '$original',
        usermeta_new_link.meta_key = '$new',
        usermeta_exp_link.meta_key = '$exp_link',
        wp_ihc_user_levels = '$level'   
    WHERE wp_users.ID = '$get_user_id' ;    

Note: You are munging the query string with constant values. That is a really, really bad idea. You want to use parameters to pass values into the query.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=386729&siteId=1