Проблема тестирования переменных asp mysql
-
23-08-2019 - |
Вопрос
У меня проблема, которая началась только после того, как я переустановил сервер своего веб-сайта.
Раньше я мог сделать это:
Код:
<%
set msgSet = conn.execute("select * from base_scroller where scroller_num = 1"
%>
проверьте, не пусто ли оно или что-то еще
Код:
<% if msgSet("scroller_name") <> "" then %>
и если это так, я мог бы сделать с ним что угодно (например, показать его ценность)
Код:
<%= msgSet("scroller_name") %>
<% end if %>
Теперь я не могу этого сделать, тест «if» не работает с «msgSet(»scroller_name»)», и мне нужно сначала переопределить его в другой переменной.
Код:
<% scrollername = msgSet("scroller_name") %>
тогда и только тогда я смогу провести тесты на нем...
Код:
<% if scrollername <> "" then %>
и покажи это тоже.
<%= scrollername %>
<% end if %>
Я просто хотел бы вернуть возможность выполнять операции с переменными набора записей MySQL, такими как b4....
Кто-нибудь сталкивался с этой проблемой?что изменилось, это ошибочная версия MySQL или что-то в этом роде?
Спасибо вам, ребята.
Нет правильного решения
Другие советы
Чтобы убедиться, что в поле есть значение, вам следует сделать две вещи:
- Убедитесь, что набор записей не пуст.
- Убедитесь, что поле в текущем не имеет значения NULL.
Я не исключаю каких-либо изменений в драйверах, которые повлияли на ваш код, но я предполагаю, что разница в том, что ваша строка фактически возвращает пустую строку (которая будет равна ""), а ваш набор записей возвращает правильное значение NULL (что не является равный "")
Более подробная информация:
мой odbc:драйвер mysql 5.1.
моя версия MySQL:MySQL-сервер 5.0
моя строка подключения:
Я пытался удалить STMT=SET CHARACTER SET hebrew;OPTION=3;часть - без изменений...
проблема в использовании любых переменных прямо из базы данных, это может быть любая переменная (текст, дата, целое число)...
даже
day(msgSet("scroller_date")) сейчас не работает...
и это смешно...раньше все работало нормально..б4 установка
ты видишь что-нибудь необычное?может быть, другая версия mysql/ODBC?
Хорошо...
новый odbc — 5.1:расположен на серверах mysql.com (ссылка: http://dev.mysql.com/downloads/connector/odbc/5.1.html)
Да.Я снова переустановил ОС (сервер Windows 2003) на своем веб-сервере и установил на него сервер MySQL 5.0.
Я не получаю сообщение об ошибке, он просто не возвращает никаких данных, когда я использую метод, который я объяснял, и мне приходится использовать дополнительные переменные, как я объяснил.
Вам нужна дополнительная информация, пожалуйста?
Это мог бы быть лучший способ проверить, пуст ли набор записей альтернативным способом.
Обычно я использую:
On Error Goto 0
set msgSet = conn.execute("select * from base_scroller where scroller_num = 1"
If msgSet.EOF = True And msgSet.BOF = True Then
Response.Write "Recordset cursor was at the beginning and end of file - empty set."
Response.End
End If
Это может помочь в его отладке.
Да, и еще кое-что, что может быть важно.Я не могу вспомнить, что вызвало это, но иногда я обнаруживал, что при ссылке на поля MySQL через набор записей они всегда были в нижнем регистре, независимо от того, какие поля находятся в определении базы данных или запросе.
Если это не приводит к сбою вашего сценария, возможно, попробуйте выяснить, что было возвращено набором записей.
Dim i
For Each i In msgSet.Fields
Response.Write i & "=[" & msgSet.Fields(i) & "]<br />"
Next
Удачи
Никогда раньше не сталкивался с этой проблемой, и я не уверен, почему (более подробная информация об ошибке была бы полезна), но в качестве относительно быстрого решения вы можете захотеть использовать предмет при его использовании.Нравиться:
<%= cStr(msgSet("scroller_name")) %>
Видеть http://www.w3schools.com/vbscript/vbscript_ref_functions.asp#conversion Чтобы получить больше информации.
Более подробная информация о ошибка, которую вы получаете поможет вам получить лучший ответ.MyODBC 5.1 не существует, какую версию драйверов MyODBC вы используете?По "мой odbc:mysql 5.1", вы имеете в виду драйвер для MySQL 5.1 - это должна быть версия MyODBC 3.51.
Кроме того, под «после того, как я переустановил сервер своего веб-сайта», вы имеете в виду, что выполнили чистую установку ОС сервера?или вы просто переустановили MySQL?Или что-то другое?MySQL 5.1 вышел только 8 декабря.- это было частью модернизации?
Наконец, пожалуйста, прочитайте некоторые комментарии к вашему вопросу и некоторые ваши ответы.При прочих равных условиях, если необходимы какие-то разъяснения, отредактируйте вопрос, добавив подробности.Не пишите ответ.Это не форум, и ваш ответ потеряет контекст, как только над ним проголосуют за что-то.Кроме того, легче охватить всю проблему, если она собрана в одном месте, а не прокручиваться между вопросом и различными дополнениями, выдающими себя за ответы.
У меня та же проблема...Просто перенос сайта asp с mysql 4 и odbc 3.x (старая версия...) на mysql 5.1 и odbc 5.1.Если я попробую этот простой код:
Установите rs = conn.execute ("select ...."), а не rs. e response.write "t1:" & rs("текст") & "
т2:" & rs("текст") & "
"Rs.movenext Wend
в качестве вывода я получаю следующее:т1:Привет T2:т1:Как дела T2:и т. д...
Во второй раз, когда я обращаюсь к полю, оно не имеет значения, единственный способ - использовать временную переменную для хранения данных в первый раз...