我的数据库中包含所有表的数组,如果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);
答案 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。