Php 如何检查数据库中是否存在$\u GET变量
如何检查数据库中是否存在未打印错误的$\u GET变量。 我正在使用以下代码:Php 如何检查数据库中是否存在$\u GET变量,php,for-loop,Php,For Loop,如何检查数据库中是否存在未打印错误的$\u 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
$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';
}
}
它打印的错误太多,或者else条件始终为真。帮帮我。首先必须检查get变量是否实际存在。如果PHP isset函数存在,您可以使用它来执行此操作。您可以继续查看它是否与您现在所做的站点标题匹配。直接将任何PHP数组变量抛出到查询中是不安全的。你需要清理它。考虑使用MySQL LIALL逃逸字符串。虽然我建议改成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
}
?>
请尝试下面的代码,并通知我,如果您将面临任何错误
<?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';
}
}
?>
对你有用的链接;另外,我建议改为使用PDO,它更可读,更容易处理。与Python不同,PHP中没有for/else循环。在循环之前,您需要检查行的数量,如果没有行,则会出错。打印$\u GET['website']变量以查看它的值。另外,$row\u count值可能有太多行,如果代码连续打印太多“错误”,则只有1为真。在这段代码中,else条件始终为true。我已经解决了这个问题::我们应该在循环外保持else条件或not equal条件。这样它就可以完美地工作。如果我们在循环中保持not equal或else条件,它会打印很多次。@user617126我刚刚写了一个用于比较变量的If条件。在if条件下我也有临时变量。我不知道你的代码中有哪些变量。您应该在if条件下使用正确的变量,这样它就可以正常工作。