2013-02-27 116 views
-5

我的程序在这里有什么问题?我似乎无法工作“找不到的单词”? :/PHP MYSQL QUERY VALIDATION

echo "<form action='#' method='post'>"; 
echo "Search word here: <input type='text' name='search'>"; 
echo "<input type='submit' name='searchword' value='Search'>"; 
echo "</form>"; 
if(isset($_POST['searchword'])){ 
    $word = $_POST['search']; 
    $result = mysql_query("SELECT * FROM positivethesaurus where word like '%$word%'"); 
    while($row = mysql_fetch_array($result)){ 
    echo $row['word']."<br>"; 
    } 
    if($row = mysql_fetch_array(!$result)){ 
     echo "word not found"; 
    } 
} 
+1

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – 2013-02-27 12:45:53

+0

仅供参考,您也可以通过[SQL注入](http://stackoverflow.com/q/60174) – 2013-02-27 12:46:31

+0

@ F4r-20感谢编辑(:im新到此 – troubledone 2013-02-27 12:52:58

回答

0

词也许是一个保留期限,试试这个

"SELECT * FROM positivethesaurus where `word` like '%$word%'" 
+0

好主意,但'词'不是[保留字](http:///dev.mysql.com/doc/refman/5.5/en/reserved-words.html) – George 2013-02-27 12:49:20

1

你的帖子值是错误的。更改为,

$word = $_POST['searchword']; 

从,

$word = $_POST['search']; 
+0

它仍然不工作这里的错误警告:mysql_fetch_array()期望参数1是资源,布尔在C:\ wamp \ www中给出\ EIMS \ searchbypositive.php 25行 – troubledone 2013-02-27 12:51:50

+0

@troubledone仅当您的查询返回false时才会出现此错误。检查你的查询是否返回任何结果。 – 2013-02-27 12:53:07

+0

明白了:)!我应该把我的感叹号或null的行放在这个!$ row:D – troubledone 2013-02-27 12:56:57

3

我认为你的价值有错误的字段名

$word = $_POST['search']; 

分配给$word应该

$word = $_POST['searchword']; 

我只是克因为您正在检查是否使用此字段名称进行设置。

我希望它能帮助你。

+0

searchword name是我的提交名称 – troubledone 2013-02-27 12:52:31