我正在寻找一个基本查询,使用mysqli搜索表中的特定值。例如;如果' a'存在于表中然后回声已经存在'。 请帮忙,因为我仍然在学习如何摆脱弃用的代码。
$mysqli = new mysqli('localhost', 'root', 'pass', 'agents');
$result = $mysqli->query('select * from project');
if ($result)
{
$check = array();
while ($row = $result->fetch_assoc())
{
$check[] = $row['projectname'];
}
}
$a = 'a';
if ($a = $check)
{
echo "<script type='text/jscript'>
alert('already exists.')
</script>";
}
答案 0 :(得分:0)
$mysqli = new mysqli('localhost', 'root', 'pass', 'agents');
$result = $mysqli->query("select * from project where projectName = 'a'");
if($result->num_rows > 0)
echo "already exists";
答案 1 :(得分:0)
数据库旨在使用WHERE
子句搜索您。当您可以让数据库为您执行此操作时,无需读取整个表。
$result = $mysqli->query("SELECT COUNT(*) AS found FROM project WHERE projectname = '$a'");
$row = $result->fetch_assoc();
if ($row['found'] > 0) {
echo "<script type='text/jscript'>alert('already exists.')</script>";
}
答案 2 :(得分:0)
您的代码中存在逻辑错误。您尝试将数组($ check)与字符串($ a)进行比较。尝试这样的事情:
$mysqli = new mysqli('localhost', 'root', 'pass', 'agents');
$result = $mysqli->query('select * from project');
if ($result) {
$check = array();
while ($row = $result->fetch_assoc()) {
$projectname = $row['projectname'];
if($projectname == 'a')
{
echo "<script type='text/jscript'>alert('already exists.')</script>";
break;
}
$check[] = $row['projectname'];
}
print_r($check);
}
else
{
echo "<script type='text/jscript'>alert('mysqli error')</script>";
}
此代码将检查表中的每个项目名称,如果存在projectname ='a',则会显示警告。
P.S。如果您想以非常好的方式联系您的数据库,请阅读PDO驱动程序(http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html)