我想将禁用的单词存储在数据库中,以便以后确定是否存在某些单词(因此是一个禁用的单词,应该进行审查)。
Word输入表单(ban.php):
<form name="form" method="post" action="add.php">
<input type="text" name="bad" id="bad">
<input type="submit" name="submit" id="submit" size="12" value="submit">
</form>PHP代码(add.php):
<?PHP
require_once("config.php"); // db conn
$bad = $_POST['bad'];
$bad = mysql_real_escape_string($bad);
$sql = "insert into my_table set bad='$bad'";
mysql_query($sql, $conn) or die(mysql_error());
echo "Done bad word added";
?>比方说我们禁止了ugly这个词。现在我想这样做:
<?PHP
require_once("config.php"); // db conn
$qry = "select * from my_table";
$result = mysql_query($qry) or die($qry);
$test = "ugly"; // Example
if ($test == any of the words in the db my_table){
echo "banned";
}else{
echo "passed";
{
?>该怎么做呢?在my_table中增加了很多单词:
id,bad (1,'ugly')
id,bad (2,'sick')
id,bad (3,'manal')
id,bad (4,'fog')发布于 2012-02-26 19:37:01
您应该尝试从数据库中选择单词,这比必须遍历数组要快得多。
像这样的东西应该行得通。
<?php
require_once("config.php"); // db conn
$test = "ugly"; // remember to use mysql_real_escape_string in the implementation
$qry = "SELECT * FROM `my_table` WHERE bad='{$test}'"; // select by value
$result=mysql_query($qry);
if( mysql_num_rows( $result ) ){ // we have a row with the 'bad' word
echo "banned";
}else{
echo "passed";
}
?>发布于 2012-02-26 19:34:14
使用不同的SQL语句
$qry = "select * from my_table where bad = '".$test."'";而不是只测试结果是否有什么(禁止或通过)。
发布于 2012-02-26 19:35:43
您的插入SQL没有任何意义。您正在插入,但使用了update语法。您的查询应该是"insert into my_table values (1,‘$bad’)“;
在查找禁用单词方面,您最好通过查询来查找不好的单词:
选择count(1) from my_table where word =禁止的单词。
如果对查询运行mysql_num_rows,则任何大于0的值都表示禁止该查询。
https://stackoverflow.com/questions/9452685
复制相似问题