PHP,如何检查MySQL表是否有名称

时间:2013-08-21 13:52:38

标签: php mysql arrays

我正在尝试连接到MySQL数据库以检查表(builditblocks)以查看用户在“name”列中是否有数据。

这是我到目前为止所做的:

<?php
 $temp=mysqli_query($con, "SELECT * FROM `builditblocks`.`module_index`.`name`");
 $i = 0;
 while($module = mysqli_fetch_array($temp))
 {
   "moduleArray[".$i."]=\"" . $module["name"]."\";" ;
   $i++
   //stuck here I need to know how to
   //store them all in an array and check
   //to see if the input matches any array elements
 }

如果表格中有名称,我如何查看表格?

4 个答案:

答案 0 :(得分:1)

首先,将名称推送到新数组并使用in_array

进行检查
$modules = array();
while($module = mysqli_fetch_array($temp))
{
   $modules[] = $module['name'];
}

if(in_array($_POST['input'], $modules))
    echo "I found";
else
    echo "Not found";

答案 1 :(得分:1)

您可能想尝试将“WHERE”子句与“LIKE”结合使用。

$temp = mysqli_query($con, "SELECT * FROM `builditblocks`.`module_index`.`name` WHERE `name` LIKE '%input%'");

上面的代码只会为您提供名称中包含“input”的记录。 查看http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like了解更多信息。

答案 2 :(得分:0)

要查找数据库中是否存在名称,您只需要在SQL查询中添加WHERE

$name = $module['name'];

"SELECT * FROM 'builditblocks'.'module_index'.'name' WHERE name = '".$name."'"

然后检查是否返回任何内容。如果是,则名称存在,如果不存在则则不存在。

答案 3 :(得分:0)

尝试以下方法:

$name = $module["name"]; // Assign your user input to a variable
$temp = mysqli_query($con, "SELECT * FROM builditblocks.module_index WHERE name = '" . $name . "'"; // Get all fields from table where the name field equals the user input.
if ($temp) {
    // If any records were returned the name exists
} else {
    // Otherwise the name doesn't exist
}

希望这有帮助。