MySQL-запрос перестает работать на живом сервере (работает на локальном хосте)

Как вы указали, игра работает нормально, что не удается, когда вы пытаетесь получить доступ к переменной с помощью консоли (в JSFiddle?), которая терпит неудачу. Это происходит по двум причинам:

  1. Контекст консоли.
  2. Область переменных.

Упрощение бит: контекст консоли - это документ, на который будут влиять действия консоли. По умолчанию в Chrome контекст является верхним фреймом, но его можно изменить с помощью раскрывающегося списка в верхнем левом углу:

В вашем случае , вы используете JSFiddle, а JSFiddle использует iframe для отображения результатов. Если область действия консоли - «& lt; top frame & gt;», то вы не сможете получить доступ к переменным из окна результатов. Вам нужно изменить раскрывающийся список на значение «result (fiddle.jshell.net/)».

Но даже если вы это сделаете, вы все равно получите ошибку. Почему это? из-за второй причины: область действия переменной. Снова упрощая бит, переменная scope является частью программы, которая может видеть / получать доступ к переменной. Это может быть все приложение (глобальная переменная) или просто его часть (локальная переменная).

В вашем случае вы используете ключевое слово var внутри функции (даже если вы не подумайте, что вы используете его внутри функции, на самом деле вы выбрали «Нагрузка» для выполнения JavaScript и который будет обертывать ваш код внутри анонимной функции, выполняемой при загрузке окна) и делает все переменные локальными для этой функции .

Когда вы пытаетесь распечатать переменные с консоли, они не могут быть доступны, поскольку их область действия является той конкретной функцией, и они не существуют вне ее. Чтобы решить эту проблему:

  • Сделайте переменные глобальными, удалив ключевое слово var. Этот параметр не рекомендуется, так как он может иметь неожиданные результаты (к переменной можно получить доступ к любой функции, а отладка / обслуживание может стать кошмаром); Или
  • Вместо использования опции «onLoad» для выполнения JavaScript используйте «No wrap-in & lt; body & gt;». Таким образом, ваш код не будет завернут в window.onload=function(){ }, но перейдите прямо в