2012-02-23 78 views
0

谢谢大家。根据你的回答,看起来我会送回去的。我认为这可能是我可以快速解决的问题。在这个Mysql查询中,(整数)是什么意思?

我们的一位客户向我们发送了一个脚本,其中一个文件包含以下内容。

AND catparentid = '".(integer)."'"; 

有没有人有任何想法为什么单词“整数”将介于括号之间或它应该做什么?我在网上找不到任何关于它的信息。这是一个SQL查询的结尾部分。剧本抱怨“。”在这个查询中,但我怀疑问题是“整数”部分...?

这是一个完整的查询....

$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote($prod)."' AND catparentid = '".(integer)."'"; 

谢谢!

+0

的字符串,它不是有效的SQL。这很可能是一个错字。 – 2012-02-23 19:19:06

回答

0

这是一个PHP的错误,而不是一个MySQL的一个。

我只能推测这个脚本实际上应该做什么,但它可能意味着cast变量为整数,因为catparentid列是整数类型(这是一个好主意),但变量不是其实有:

$sql = "..AND catparentid = '".(integer) $catparentid ."'"; 
//          ^forgot something? 

然而,眼看[|PREFIX|],它更可能只是一个占位符as Michael suggests

+0

感谢Madmartigan,前缀部分是更大的购物车的一部分,所以它在所有的脚本中使用,但是,这个catparentid的事情是混乱。 – Tsanders 2012-02-23 19:21:38

0

最有可能的是,客户端只是表明值catparentid应该是一个整数,并且在PHP中执行查询时,应该用整数变量代替(integer)

// An integer... 
$catparentid = 12345; 
$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote($prod)."' AND catparentid = '".$catparentid."'"; 

或者,由于引用MySQL中的数值是没有必要的:

$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote($prod)."' AND catparentid = $catparentid"; 
+0

谢谢迈克尔。这有点神秘,因为我们不是为客户构建它,它应该准备好去。嗯... – Tsanders 2012-02-23 19:14:45

0
AND catparentid = '".(integer)."'"; 

强烈PHP,这里的点作为字符串连接符的气味。我怀疑这是从PHP代码粘贴,并没有完全消毒。

在PHP中,这将创造各种

AND catparentid = '(integer)' 
+0

谢谢欧根。他们用“(某事在中间)”。在他们所有的疑问。新对我来说。 – Tsanders 2012-02-23 19:53:05