如果没有打印错误,如何检查数据库中是否存在$ _GET变量。 我正在使用此代码:
$connection = mysqli_connect("localhost" , "root" , "" , "test");
$query = "SELECT site_title FROM websites";
$select_all_sites = mysqli_query($connection,$query);
$row_count = mysqli_num_rows($select_all_sites);
for ($i=0; $i < $row_count; $i++){
$row = mysqli_fetch_assoc($select_all_sites);
if($_GET['website'] == $row['site_title']){
echo 'Success';
}else{
echo 'error';
}
}
它打印太多错误或(其他条件始终如此。)帮助我。
答案 0 :(得分:0)
将任何php数组变量直接抛出到查询中是不安全的。你需要清理它。考虑使用mysqli_real_escape_string。虽然我建议改用PDO。
回到你的问题,为什么你不能使用while循环而不是for循环。您需要检查变量网站是否确实存在。 php的isset功能会有所帮助。试试这个:
<?php
if(isset($_GET['website'])){
if($_GET['website'] == $row['site_title']){
#awesome! it matches
} else{
#it does not match
}
} else{
#website $_GET variable does not exist. Handle error
}
?>
答案 1 :(得分:-1)
请尝试以下代码并告知我您是否会遇到任何错误。
<?php
$connection = mysqli_connect("localhost" , "root" , "" , "test");
$query = "SELECT site_title FROM websites";
$select_all_sites = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($select_all_sites))
{
if($_GET['website'] == $row['site_title'])
{
echo 'Success';
}
else
{
echo 'error';
}
}
?>
答案 2 :(得分:-2)
首先必须检查get变量是否实际存在。您可以使用PHP isset函数http://php.net/manual/en/function.isset.php执行此操作(如果存在),您可以继续查看它是否与您现在所做的网站标题匹配。