以下是我的代码在mysql查询中显示一些错误:
<?php
$con=mysql_connect('localhost','root','');
$str=$_GET["message"];
$stor=explode(" ",$str);// converting message into array
mysql_select_db('words',$con);
for($j=0;$j<=30; $j++)
{
mysql_query($con,"UPDATE blacklist SET $stor=1 where $stor=0");//if column name=element in array then make it as 1 in database
}
mysql_close($con);
?>
答案 0 :(得分:1)
IN('。implode(“,”,$ stor)。')
上面的代码执行以下操作:
implode() - 获取一个数组并将其转换为逗号分隔的字符串。
IN() - 比较给定的逗号分隔值,如果至少存在其中一个,则返回true。
示例(内爆):
implode(“,”,array(1,2,3))等于“1,2,3”
示例(IN):
TestID IN(1,2,3)与AS相同(TestID = 1或TestID = 2或TestID = 3)
答案 1 :(得分:0)
您可能收到mysql错误,因为您的查询最终看起来像这样
UPDATE blacklist SET Array=1 where Array=0;
如果你只是回显一个完整的数组,那么你得到Array
,你需要指定一个数组元素(例如$stor[1]
)。
你要做的是用foreach替换你的for循环,这样你就可以一次丢掉一个元素。
此外,你的论点是倒退的。
foreach($stor as $word)
{
mysql_query("UPDATE blacklist SET $word=1 where $word=0", $con);
}