谢谢大家。根据您的回复,看起来我会发回这个回复。我认为这可能是我可以迅速解决的问题。
我们的一位客户向我们发送了一个脚本,其中一个文件中包含以下内容。
AND catparentid = '".( integer )."'";
有没有人知道为什么“整数”这个词会在括号之间或它应该做什么?我在网上找不到任何关于它的信息。它是sql查询的结尾部分。脚本抱怨“。”在这个查询中但我怀疑问题是“整数”部分......?
这是完整的查询....
$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote( $prod )."' AND catparentid = '".( integer )."'";
谢谢!
答案 0 :(得分: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";
答案 1 :(得分:0)
这是一个PHP错误而不是MySQL错误。
我只能推测这个脚本应该做什么,但它们可能意味着cast变量为整数,因为catparentid
列是一个整数类型(这是一个好主意) ,但变量实际上并不存在:
$sql = "..AND catparentid = '".( integer ) $catparentid ."'";
// ^ forgot something?
但是,看到[|PREFIX|]
,它更可能只是一个占位符as Michael suggests。
答案 2 :(得分:0)
AND catparentid = '".( integer )."'";
非常强烈的PHP,其中点用作字符串连接符。我怀疑这是从PHP代码中粘贴的,并没有完全消毒。
在PHP中,这将创建一系列排序
AND catparentid = '( integer )'