Log in

View Full Version : Mysql Error Number : 1064


hotma1l
09-14-2006, 12:43 AM
Database error in vBulletin 3.5.5:

Invalid SQL:
SELECT userid FROM post where threadid = AND userid = 1;

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND userid = 1' at line 1
Error Number : 1064
Date : Wednesday, September 13th 2006 @ 03:42:36 PM
Script : http://www.xxxx.com/vb/admincp/misc....=30005&pp=5000
Referrer : http://www.xxxx.com/vb/admincp/
IP Address :
Username :
Classname : vB_Database

I get that when updating rebuild post cache

I found out it's from the extra tools product. It works fine but when i enable the hid hack to show it in the toolbar i get the error while rebuilding the post cache.

here is the part in the hack file where i think the problem is from

// [hide]
if ($vbulletin->options['allowedhide'])
{
function handle_hide(&$parser, $param, $option)
{
global $vbulletin;

$posted = $vbulletin->db->query_first("SELECT userid FROM " . TABLE_PREFIX . "post where threadid = " . $vbulletin->GPC['threadid'] . " AND userid = " . $vbulletin->userinfo['userid'] . "");

if($vbulletin->GPC['threadid'] AND $vbulletin->userinfo['userid'] != $posted['userid'] AND can_moderate($forumid, 'canremoveposts') == false OR $vbulletin->userinfo['userid'] == 0)
{
return "<img src='images/hide.gif' border='0' alt='hidden' /><br />";
}
else
{
return "<img src='images/uhhide.gif' border='0' alt='unhidden' /><br />$param";
}
}
$tag_list['no_option']['hide'] = array
(
'callback' => 'handle_external',
'external_callback' => 'handle_hide',
'strip_empty' => true,
);
}
else
{
$tag_list['no_option']['hide'] = array
(
'html' => '%1$s',
'strip_empty' => true,
);
}
}


Can someone find where the problem is ?

Thank You

davidw
09-14-2006, 01:11 AM
Just a thought... try changing this:
$posted = $vbulletin->db->query_first("SELECT userid FROM " . TABLE_PREFIX . "post where threadid = " . $vbulletin->GPC['threadid'] . " AND userid = " . $vbulletin->userinfo['userid'] . "");
to this:
$posted = $vbulletin->db->query_first("SELECT userid FROM " . TABLE_PREFIX . "post where threadid = " . $vbulletin->GPC['threadid'] . " AND userid = " . $vbulletin->userinfo['userid'] . ";");Can you try the query itself (with substitutes) in phpmyadmin?

Paul M
09-14-2006, 03:26 AM
The query relies on threadid being supplied as either a GET or POST variable, if neither exists it will fail as above. It's impossible to tell if it was supplied as you have edited the calling script details in the error message.

The query also seems somewhat strange in the first place ;

SELECT userid FROM post where threadid = <any number> AND userid = 1

Basically Select userid where userid = 1 :confused:

hotma1l
09-14-2006, 07:24 AM
This is the error again

Database error in vBulletin 3.5.5:

Invalid SQL:
SELECT userid FROM post where threadid = AND userid = 1;

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND userid = 1' at line 1
Error Number : 1064
Date : Thursday, September 14th 2006 @ 04:13:52 AM
Script : http://www.xxxx.com/vb/admincp/misc.php?do=buildpostcache&startat=30005&pp=5000
Referrer : http://www.xxxx.com/vb/admincp/
IP Address :
Username :
Classname : vB_Database

christianb , I did try what you wrote down put nothing happended, same problem

any ideas on how to fix it ?

Thanks

This is the hack used

https://vborg.vbsupport.ru/showthread.php?t=104751

davidw
09-14-2006, 11:39 AM
did you try executing the modified query in something like phpmyadmin? Take for example what Paul usedSELECT userid FROM post where threadid = <any number> AND userid = 1replace the <any number> with your threadid and put the ; on the end of the query when executing the query.

hotma1l
09-14-2006, 01:39 PM
Hello,

I ran this query

SELECT userid FROM post where threadid = <any number> AND userid = 1

with threadid to 115012

am not sure which threadid to put ? so i put this 115012 the one shown before the error happens

and i got this message

MySQL returned an empty result set (i.e. zero rows). (Query took 0.0117 sec)SQL query:SELECT userid
FROM post
WHERE threadid =115012
AND userid =1
LIMIT 0 , 30;

Any still got the problem

hotma1l
09-15-2006, 04:50 PM
bump

hotma1l
09-17-2006, 05:47 PM
another bump