我是PHP的新手。我已经完成了以下工作,但是我认为必须有一个更好的方法来做到这一点,我所做的是非常肮脏的黑客。
所以,我有一本字典,每个单词的引用都对应另一个表中的另一个单词。我希望搜索的Ar字搜索AR表以查看是否匹配。如果是,则返回该单词的Reference,然后转到EN表并搜索该引用是否存在。然后返回带有该引用号的所有单词。 以下工作,但我想知道是否有更好的方法。
<?php
if (!empty($_POST)){
$word = $_POST["word"];
$result = mysql_query("SELECT ref FROM en_a_ar WHERE ar = '$word'");
while($row = mysql_fetch_array($result)) {
$searchRef = $row['ref'];
$searchResult = mysql_query("SELECT en FROM en_a WHERE ref = '$searchRef'");
while($row = mysql_fetch_array($searchResult)) {
echo $row['en'];
echo "<br>";
}
}
}
?>
答案 0 :(得分:1)
SELECT
en_a.en
FROM
en_a
JOIN
en_a_ar
ON
en_a_ar.ref = en_a.ref
WHERE
en_a_ar.ar = '$word'
正如其他人所说,您需要清理输入$word
,因为它来自客户端并创建SQL Injection Vulnerability。