1

重複の可能性:
mysql_fetch_array() は、パラメーター 1 がリソースであると想定しており、select でブール値が指定されています

これは現在動作しています...

$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%'");

ただし、 content という名前のすべてのフィールドを削除し、次のようなもので 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 がリソースであると想定し、ブール値は
C:\xampp\htdocs\framework.php の 33 行目に指定されています

4

1 に答える 1

3

あなたが試みているのは、実際には構文エラーです。LIKE条件は個別にリストし、ANDまたはで区切る必要があります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 に答える