2010-06-06 2 views
4

Я только что перевел мой сайт на новый сервер (Shared to VPS)Условные обозначения MySQL?

Я ожидал ошибок, и единственная ошибка, которая меня действительно озадачивает, - это этот оператор SQL.

echo mysql_query("SELECT COUNT(*) FROM users_online_now") 

Это не возвращает ничего! И если я пытаюсь mysql_num_rows, он возвращает

mysql_num_rows(): supplied argument is not a valid MySQL result resource.. 

Если я запрос другую таблицу, хотя, например:

echo mysql_query("SELECT COUNT(*) FROM users") 

Он отлично работает.

Я предполагаю, что это как-то связано с названием стола? Он отлично работал на моем предыдущем хосте, есть ли какая-то настройка, которую я должен изменить?

Обновление: Выяснено. Сервер все еще идет через DNS-изменения, и mySQL полностью перепутался. DNS наконец-то обновился!

+1

Ну, существует ли таблица этого имени? –

+1

Однако имена таблиц должны быть заключены в обратные ссылки: '\' 'не кавычки. Но это не может быть причиной, если ваш второй запрос работает. –

+0

Да, я удаляю цитаты и да; таблицы существуют. – Moe

ответ

6

Постарайтесь выяснить, какие ошибки вы получите, добавив or die так:

mysql_query("SELECT COUNT(*) FROM `users_online_now`") or die(mysql_error()); 

Также убедитесь, что вы уже подключены к базе данных MySQL успешно, чтобы эти функции для этого:

mysql_connect
mysql_select_db

Примечание: В именах вы должны использовать символ обратного хода (`), а не одинарной.

Update:

Если у вас есть базы данных MySQL, который имеет таблицу с поврежденным индексом, вы можете получить сообщение об ошибке:

Incorrect file format [table name] 

Here is the possible solution.

.

Другие темы по проблеме:

http://forums.mysql.com/read.php?21,18436,18436

http://www.linuxquestions.org/questions/linux-software-2/mysql-crash-on-startup-incorrect-file-format-host-464422/

http://www.devcomments.com/SQL-Error-incorrect-file-format-to138833.htm

+0

Я подключен нормально и что mysql_error() вернул: Неверный формат файла 'users_online_now' – Moe

+0

@Moe: Смотрите мой обновленный ответ, пожалуйста. – Sarfraz

+0

Ремонт по-прежнему не работает! Это очень странно. – Moe

1

Вам нужно пройти MySQL result resource к mysql_num_rows так:

$result = mysql_query("SELECT COUNT(*) FROM `users_online_now`"); 
echo mysql_num_rows($result); 

Вы также должны указать use ` for table names, если они должны быть указаны. Но в этом случае имя таблицы не нужно указывать.

Смежные вопросы