Прежде всего:
Пожалуйста, не используйте
mysql_*
функции в новом коде . Они больше не поддерживаются и официально устарели . См. Красную рамку ? Узнайте о подготовленных операторах и используйте PDO или MySQLi - в этой статье , которые помогут вам решить, какой из них. Если вы выберете PDO, вот хороший учебник .Это происходит, когда вы пытаетесь получить данные из результата
mysql_query
, но запросЭто предупреждение и не остановит скрипт, но сделает вашу программу неправильной.
Вам нужно проверить результат, возвращенный
mysql_query
, на$res = mysql_query($sql); if (!$res) { die(mysql_error()); } // after checking, do the fetch
Вопросы, относящиеся
- mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, логическим значением в select
- Все «mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан« Вопросы по Stackoverflow
Связанные ошибки:
Другие функции
mysql*
, которые также ожидают, что ресурс результата mysql в качестве параметра приведет к той же ошибке для такой же причина.
Я проверил бы свой код приложения и видел бы то, что оценивает Вас, устанавливают @template на. Я подозреваю, что это является пустым в этом и заключается проблема.
Если Шаблон не будет установлен (т.е. == пустой указатель), эта ошибка будет повышена, также.
[еще 111] комментарии:
, Если Вы знаете значение параметра к тому времени, когда Вы добавляете параметры, можно также использовать AddWithValue
, ДОЛЖНОСТНОЕ ЛИЦО не требуется. Можно сослаться на @template параметр в ВЫБОРЕ непосредственно.
Сначала - почему это - ДОЛЖНОСТНОЕ ЛИЦО? Это не должно только быть
AS
SELECT Column_Name, ...
FROM ...
WHERE TABLE_NAME = @template
, текущий SP не имеет смысла? В частности, это искало бы столбец , соответствующий @template, не varchar значение @template. т.е. если бы @template 'Column_Name'
, он искал бы WHERE TABLE_NAME = Column_Name
, который очень редок (иметь таблицу и столбец, названный тем же).
кроме того, если Вы делаете , должны использовать динамический SQL, необходимо использовать EXEC sp_ExecuteSQL
(хранение значений как параметры) для предотвращения от инжекционных нападений (а не конкатенация входа). Но это не необходимо в этом случае.
Ре фактическая проблема - это смотрит хорошо от взгляда; действительно ли Вы уверены, что у Вас нет различной копии SP бродящей вокруг? Это - распространенная ошибка...
Кроме того к другим ответам здесь, если вы забыли указать:
cmd.CommandType = CommandType.StoredProcedure;
Тогда вы также получите эту ошибку.