如何对类似的值进行简单的mysqli查询?

时间:2014-07-30 06:20:23

标签: php mysqli

我正在寻找一个基本查询,使用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>";
}

3 个答案:

答案 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