我正在生成查询的第一部分,如下所示:
`productList`.`name`
然后第二部分是这样的:
while ($all_products = $db->fetch_array($all_prods))
{
$filter_string .= 'AND product_id !=';
$filter_string .= $all_products['item_id'];
$filter_string .= ' ';
}
然而,它给了我一个mySQL语法错误,而$sql_more_items = $db->query("SELECT * FROM db_products
WHERE owner_id='" . $user_id . "' AND active=1 '" . $filter_string . "'
ORDER BY RAND() LIMIT 10");
部分在字符串之前和之后奇怪地添加$filter_string
两次,所以它运行如下:
'
我做错了什么?
答案 0 :(得分:3)
$filter_string
添加'
因为你把它放在那里。 :P
尝试使用$filter_string
周围的双引号:
$sql_more_items = $db->query("SELECT * FROM db_products WHERE owner_id='" . $user_id . "' AND active=1 " . $filter_string . "ORDER BY RAND() LIMIT 10");
答案 1 :(得分:2)
ViewGroup parent = (ViewGroup)viewToRemove.getParent();
parent.removeView(viewToRemove);
parent.addView(viewToRemove, index);
检查您执行字符串连接的方式(将字符串放在一起)。您似乎在使用'"'''''''而不只是一个"
我会通过重新格式化代码来使用空格(和一个好的代码编辑器),如下所示:
$sql_more_items = $db->query("SELECT * FROM db_products
WHERE owner_id='" . $user_id . "' AND active=1 '" . $filter_string . "'
ORDER BY RAND() LIMIT 10");
这种风格可以帮助您跟踪您是否正在使用"或者'对于你的字符串,也可以帮助你更容易地调试事情,而不是将它放入一个难以阅读的巨大字符串中。
答案 2 :(得分:1)
这可能是因为部分
`"' AND active=1 '"`
^.... This ' here