1

可能重复:
mysql_fetch_array() 期望参数 1 是资源,选择中给出的布尔值

这目前有效...

$resultInput = mysql_query("SHOW COLUMNS FROM " . $table. " WHERE Field NOT IN ('id', 'created', 'date_modified', 'content', 'type', 'bodytext', 'project_content', 'content_short') AND Field NOT LIKE '%_image%'");

但是我想删除所有具有名称内容的字段并将其添加到 LIKE 函数中,例如%content%

$resultInput = mysql_query("SHOW COLUMNS FROM " . $table. " WHERE Field NOT IN ('id', 'created', 'date_modified', 'type', 'bodytext') AND Field NOT LIKE ('%_image%', %content%)");

但这似乎不起作用?并返回一个“

警告:mysql_num_rows() 期望参数 1 是资源,布尔值
在第 33 行的 C:\xampp\htdocs\framework.php 中给出

4

1 回答 1

3

您正在尝试的实际上是语法错误。LIKE条件必须单独列出并用ANDor分隔OR。但是,在您的情况下,您可以通过以下方式分隔条件来做到REGEXP一点|

SHOW COLUMNS 
FROM " . $table. " 
WHERE Field NOT IN ('id', 'created', 'date_modified', 'type', 'bodytext') 
AND Field NOT REGEXP '_image|content'

因为正则表达式将匹配模式或content其中的_image 任何地方Field所以不需要任何额外的等效字符来代替.%LIKE

出于安全目的,我们假设$table已将其与此查询中使用的有效表名列表进行了比较。

最后,您收到了致命错误,mysql_num_rows()期望参数 1 是资源,因为您没有对查询结果执行错误检查。

$result_input = mysql_query("SHOW COLUMNS.....");
if (!$result_input) {
  // Something's wrong
  echo mysql_error();
}
else {
  // ok, everything is working, proceed.
}
于 2012-06-30T00:44:32.010 回答