我沒有使用SQLi的經驗,並且正在學習,但我想問這個問題,因爲我正在學習SQL注入攻擊。使用mySQLi保留字和函數 - 安全
我已經使用mySQLi保留字和函數來處理我的查詢並使我的數據庫發揮作用。
在閱讀了關於這些攻擊和如何保護自己之後,我想知道我是否應該使用這個庫,因爲我沒有看到任何人使用它。非我的講師使用它,如果使用它是不好的做法,我可以問爲什麼?
這是我的代碼示例如下。正如你可以看到我使用保留字和功能,如「mysqli_num_rows(),mysqli_free_result()和mysqli_close()。這是圖書館不好的做法,爲什麼?謝謝
<?php
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
# Run the query, store result in a string and store number of rows returned
$result= mysqli_query($con,"select * from gameRecords") or die("Error: ".mysqli_error($con));
//echo $result;
// Return the number of rows in result set
$rowcount=mysqli_num_rows($result);
if($rowcount !=0)
{
echo("Result set has $rowcount rows.<br>");
/* fetch associative array*/
while ($row = mysqli_fetch_assoc($result)) {
?>
<tr><td>
<?php
echo $row["gameNo"]."</td>"."<td>";
echo $row["oppTeam"]."</td>"."<td>";
echo $row["date"]."</td>"."<td>";
echo $row["location"]."</td>"."<td>";
echo $row["result"]."</td>"."<td>";
echo $row["ko"]."</td>"."<td>";
echo $row["score"]."</td>"."<td>";
echo $row["fhInfo"]."</td>"."<td>";
echo $row["shInfo"]."</td>"."<td>";
?>
</td>
</tr>
<?php
}
//free result set
mysqli_free_result($result);
}
# Closes the database
mysqli_close($con);
?>
「mysqli保留字」是什麼意思? – Barmar
您應該使用mysqli或PDO。 mysql庫在幾年前不推薦使用,並且已經在PHP 7中完全刪除。 – Barmar
我使用mysqli而不是PDO。我只是想知道是否有消極因素,因爲我沒有看到任何人使用它。 –