PDA

View Full Version : Database Error after deleting a user


thenags
02-01-2015, 03:21 PM
Usually with enough Google searches I can get most of my vBulletin issues fixed, but this one has me stumped. Forum was running fine for a long time. I tried to delete a user but during the deletion process in Admin CP I got a database error. Later on I noticed that the user DID get deleted but now 9 times out of 10 clicking on ANY thread in the forum will return the following database error and in the error itself I see the username mentioned that I deleted. Any help would be appreciated.

Database error in vBulletin 4.0.7:

Invalid SQL:

SELECT MIN(postid) AS postid
FROM vb3_post
WHERE threadid = 53409
AND visible = 1
AND dateline > 1421855192
AND userid NOT IN (usernameofdeleteduser)
LIMIT 1;

MySQL Error : Unknown column 'usernameofdeleteduser' in 'where clause'
Error Number : 1054
Request Date : Saturday, January 31st 2015 @ 10:46:32 AM
Error Date : Saturday, January 31st 2015 @ 10:46:32 AM
Script : http://stuntride.com/vbstunt/showthr...s?goto=newpost
Referrer : http://stuntride.com/vbstunt/forum.php
IP Address : 69.65.xxx.xxx
Username : myusername
Classname : vB_Database
MySQL Version : 5.1.70-cll

Thanks a lot.

ozzy47
02-01-2015, 03:24 PM
Did you perhaps deleted a member without deleting his/her posts first?

thenags
02-01-2015, 03:31 PM
Did you perhaps deleted a member without deleting his/her posts first?

I definitely did :-(

Any tips what to do now?

ozzy47
02-01-2015, 03:48 PM
Perhaps read this, https://vborg.vbsupport.ru/showthread.php?t=162353

Paul M
02-01-2015, 03:57 PM
Did you perhaps deleted a member without deleting his/her posts first?
You do not need to delete posts belonging to a member, and thats not the issue.

This line in the query is completely wrong ;

AND userid NOT IN (usernameofdeleteduser)



First of all its expecting a userid, not a username, secondly, the name isnt escaped, so mysql thinks its a column name.

Looking that query up, it appears you have put their username in the "Send to Coventry" option rather than the userid.

thenags
02-01-2015, 06:36 PM
You do not need to delete posts belonging to a member, and thats not the issue.

This line in the query is completely wrong ;

AND userid NOT IN (usernameofdeleteduser)



First of all its expecting a userid, not a username, secondly, the name isnt escaped, so mysql thinks its a column name.

Looking that query up, it appears you have put their username in the "Send to Coventry" option rather than the userid.

You just nailed it. When I first went to delete the user I got a DB error and didn't think he was deleted. I then added him to global ignore. Later in the day I noticed he actually DID get deleted but now I had the DB errors. I just went and removed him from global ignore and all seems to be perfect again.

Thanks a ton for the help.