如果字段不存在则跳过表的mysql语句

时间:2010-07-30 15:58:48

标签: php mysql

我的数据库中包含所有表的数组,如果applicationid = 123或familyid = 123,我需要删除记录。但有些桌子没有任何这些场地,如果是这样的话,我可以跳过桌子吗?而不是错误。

$query2="DELETE FROM "$table[$x]" WHERE applicationid = '517f20805d9bd0961c76e8f544ee6f76' OR house1ID = "$r['1']" OR house2ID ="$r['2']" OR familyID="$r['1']" OR familyID="$r['2']"";
        $result2 = mysql_db_query($aidDB, $query2, $connection);

1 个答案:

答案 0 :(得分:2)

我相信这就是你所需要的:http://www.lost-in-code.com/programming/mysql/mysql-check-if-field-exists/

$tableFields = mysql_list_fields("databasename", "tablename");

$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    $field_array[] = mysql_field_name($fields, $i);
}

然后使用in_array()检查该字段是否存在。

第二个想法,您可以在查询中使用MySQL的SHOW COLUMNS语法:

显示来自tablename的列;

迭代并将它们放入如上所示的数组中,然后检查匹配。显然,不推荐使用mysql_list_fields。