Second Subquery Inside INSERT Into saves int 0
0
votes
1
answer
45
views
Read it carefully, we have this query which is inserting values in the table called
users
. For the value member_id
we are running a subquery to select from the table admin_users the id of the member. The reason why there are single quotes
with +
, it's because we are trying to manipulate the query. At this moment this first subquery works correctly but what happends with the second subquery?
The second subquery selects the pass
from the table settings
, the table settings
and the value pass
totally exists and there is only one record, but this second query inside the INSERT INTO is not returning nothing. When the execution of the query INSERT INTO finishs, all the values are stored correctly except notes column which finally inserts 0. I don't know why but if you delete all the ''+
it works correctly the whole sql statement but in this time we can not delete ''+
because we are altering the query. I need a solution for this issue.
INSERT INTO users
(username
,password
,number
,member_id
,exp_date
,notes
)
VALUES
('balvin','sjeneoeoe','3',
''+(select id from admin_users
where username = 'TEST')+'',
'1644622354',
'' + (select pass from settings
));#;');
Also i have tried modifying the second subquery like this but it didn't work.
'' + (select pass from settings
LIMIT 1)
'' + (select pass from settings
GROUP BY pass LIMIT 1)
'' + (select pass from settings
where id = 1 LIMIT 1)
Perhaps the error it's the datatype of the column value pass in settings or the column notes in users
CREATE TABLE users
(
id
int(11) NOT NULL AUTO_INCREMENT,
member_id
int(11) DEFAULT NULL,
username
varchar(255) COLLATE utf8_unicode_ci NOT NULL,
password
varchar(255) COLLATE utf8_unicode_ci NOT NULL,
exp_date
int(11) DEFAULT NULL,
notes
mediumtext COLLATE utf8_unicode_ci NOT NULL,
number
int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (id
),
KEY member_id
(member_id
),
KEY exp_date
(exp_date
),
KEY username
(username
),
KEY password
(password
),
) ENGINE=InnoDB AUTO_INCREMENT=1702894 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
CREATE TABLE settings
(
id
int(11) NOT NULL,
name
mediumtext COLLATE utf8_unicode_ci NOT NULL,
pass
mediumtext COLLATE utf8_unicode_ci NOT NULL,
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Asked by Meto ballaes
(1 rep)
Feb 12, 2022, 07:10 PM
Last activity: Feb 13, 2022, 01:27 AM
Last activity: Feb 13, 2022, 01:27 AM