PDA

View Full Version : Problem after conversion (MYSQL)


wLTD
04-01-2007, 10:37 AM
I converted from IPB 2.2.1 to Vbulletin 3.6.5

Now, whenever I want to delete forums, I have to hide them because I am unable to physically delete them.

When I try to delete them, I get this SQL error:

Database error in vBulletin 3.6.5:

Invalid SQL:
SELECT forumid FROM forum WHERE FIND_IN_SET('113', parentlist);

MySQL Error : Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (utf8_general_ci,IMPLICIT) for operation 'find_in_set'
Error Number : 1267
Date : Sunday, April 1st 2007 @ 07:37:20 AM
Script : http://www.wltd.net/forums/admincp/forum.php?do=kill
Referrer : http://www.wltd.net/forums/admincp/forum.php?do=remove&f=113&s=
Username : nincb123
Classname : vb_database

Thanks for the help!

Marco van Herwaarden
04-01-2007, 12:35 PM
Please try the following:

Open admincp/forums.php with an editor, and find the following on line 293:

$forumdata->set_condition("FIND_IN_SET('" . $vbulletin->GPC['forumid'] . "', parentlist)");

Replace it with:
$forumdata->set_condition("FIND_IN_SET(" . $vbulletin->GPC['forumid'] . ", parentlist)");
Please let us know if that solved the problem, because if it does it is probably a bug in vB.

wLTD
04-01-2007, 01:10 PM
Ok, that fixed that bug. But I found another two:

Whenever someone posts, they cant see their own posts

And when I edit a user:

Database error in vBulletin 3.6.5:

Invalid SQL:

SELECT COUNT(*) AS users
FROM user
WHERE userid <> 581
AND
(
usergroupid IN(6)
OR FIND_IN_SET('6', membergroupids)
);

MySQL Error : Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (utf8_general_ci,IMPLICIT) for operation 'find_in_set'
Error Number : 1267
Date : Sunday, April 1st 2007 @ 10:07:56 AM
Script : http://www.warezltd.net/forums/admincp/user.php?do=update
Referrer : http://www.warezltd.net/forums/admincp/user.php?do=edit&u=581
IP Address : 24.161.120.139
Username : nincb123
Classname : vb_database

Marco van Herwaarden
04-01-2007, 06:33 PM
Try the following:

Open includes/adminfunctions_user.php, line 335:

$condition .= " AND FIND_IN_SET('" . intval($id) . "', {$prefix}membergroupids)";
Replace by:
$condition .= " AND FIND_IN_SET(" . intval($id) . ", {$prefix}membergroupids)";

wLTD
04-01-2007, 07:06 PM
Worked. Thanks. I will see if there are any other errors about.

~Nincb

Marco van Herwaarden
04-01-2007, 07:14 PM
I have created a bug report for this: http://www.vbulletin.com/forum/project.php?issueid=21709

I would however suggest that if you run into any more of these errors that you open a Support Ticket so we can have a look at your database and connection configuration, as this is most likely what is causing these problems to turn up at your site. Probably we can provide a more final solution then.

Marco van Herwaarden
04-02-2007, 08:49 AM
Also what MySQL version are you using, as there is a bug reported in MySQL that might be causing this: http://bugs.mysql.com/bug.php?id=13751