比较PHP与SQL数据库表中的数组

时间:2010-11-24 07:54:35

标签: php sql arrays

我一直在思考,但我无法提出有效的解决方案。目前,我在PHP中有一个由用户获取的数组。它是一个对象数组,每个对象有10个变量。

我需要检查这个数组是否与SQL的数据完全匹配,这意味着每个对象的所有变量必须相互匹配。索引并不重要。

1)我如何检查?现在,我可以比较的唯一方法是数组中的元素数与数据库中的行数。如果我想深入检查,我真的需要通过变量检查变量吗?意思是如果我有10个对象,我需要10 * 10个变量检查​​吗?

2)我能想到的唯一可行的解​​决方案是擦除数据库表并根据数组逐个插入对象,但我担心如果有100个对象,它不会太重sql数据库?

1 个答案:

答案 0 :(得分:0)

一种相对原始的方式是:

$fields = array();

$object = new STDClass();
$object->name = "My Name";
$object->status = "My Status";
$object->level = "My Level";

foreach ($object as $key => $value)
 {
   $fields[]="`$key` = '$value'";
  }

$sql = implode(" AND ", $fields);

$query = "SELECT * FROM tablename WHERE $sql"; 

这将生成一个查询,该查询检查具有您对象中的值的行。

这有多精确取决于您的表的排序规则和字符集。如果您需要100%的确切结果,则可以随时进行BINARY比较。