|
|
|
| Я перенес сайт с одного бесплатного хостинга на другой :) и у меня возникли некоторый проблемы с БД (скорее всего), при этом никакие ошибки невыводятся.Что самое интерестное так это, то что некоторые сценарии выполняються а некоторые нет.
Вот информация о MySQL на новом хостинге:
MySQL - 5.0.21-log
Protocol version: 10
Сервер: Localhost via UNIX socket
Пользователь: dobryy@localhost
MySQL-кодировка: UTF-8 Unicode (utf8)
|
и на старом:
MySQL - 4.1.14
Protocol version: 10
Сервер: mysql.iatp.org.ua via TCP/IP
Пользователь: metrophoto@hosting.iatp.org.ua
MySQL-кодировка: UTF-8 Unicode (utf8)
|
А это пример сценария который работает:
<?
include 'options.php';
// включение сценария с основными функциями БД
include 'db_fns.php';
// извлекаем из БД новость с $id, где $id - номер сообщения
$news_query = mysql_query("select * from news where id=$id");
$f = mysql_fetch_array($news_query);
// определение переменных: название новости, сама новость, дата публикации
$title = $f[news_title];
$text = $f[news_text];
$date = $f[date];
?>
<html>
<head>
<title>
Новости - <? echo "$title\n"; ?>
</title>
<LINK REL="stylesheet" HREF="../../style.css" TYPE="text/css">
</head>
<body>
<?
echo "<h2>$title</h2>\n";
echo $text;
echo "\n<br>\n<p align=right>$date</p>";
?>
</body>
</html>
|
Результат сценария - в хтмл коде только теги
А это один из тех который работает:
include 'gb_options.php';
// делаем выборку из БД в обратном порядке
$news_query = mysql_query("select * from news order by id desc");
// определение количества строк(количества новостей)
$max_rows = mysql_num_rows($news_query);
echo "<table class=news border=1 bordercolor=2B94F9 bgcolor=1560BC cellspacing=0 cellpadding=2>\n<tr><td width=173>Новости:</td></tr>\n";
if ($max_rows < 5)
{
// ... выводим все сообщения
for ($i=0; $i<$max_rows; $i++)
{
$f = mysql_fetch_array($news_query);
// вывод названия новости с датой её публикации
echo "<tr><td width=173>$f[news_title] [$f[date]]<br>";
// вывод ссылки на полную новость
do_html_URL_news("modules/news/one_news.php?id=$f[id] target=_blank","[подробнее]...");
echo "</td></tr>\n";
}
}
echo "</table>\n";
|
Также возникли проблемы с авторизацией и гостевой книгой, при вводе данных такое впечаиление, что они непередаются сценарию, но никаке ошибки невыводятся.
Я умешленно удалил одну из таблиц и тоже ошибка невывелась, наверно сервер так настроен, но все пхп сценарии ранее работали без проблем.
Подскажите, плз в чем проблема, а то уже весь вечер ничего сделать немогу | |
|
|
|
|
|
|
|
для: dobryy
(05.05.2006 в 01:38)
| | Я так понял что логины/пароли для доступа к мускулу в includах определяются. Может неверно логины/пароли прописали? | |
|
|
|
|
|
|
|
для: targa
(05.05.2006 в 02:33)
| | Нет, все верно прописано, поскольку в некоторых сценариях данные выводятся из БД, но не записываются, а в некоторых и не выводятся :(
А млжно ли как-нибудь включить отображение ошибок? | |
|
|
|
|
|
|
|
для: Dobryy
(05.05.2006 в 10:30)
| | Конечно, для этого всякий раз, когда вы выполняете запрос при помощи функции mysql_query(), необходимо выполнять проверку
<?
$news_query = mysql_query("select * from news order by id desc");
if(!$news_query) exit(mysql_error());
?>
|
Так как ошибка может происходить на сервере - PHP не информирует об ней. | |
|
|
|
|
|
|
|
для: cheops
(05.05.2006 в 12:46)
| | У меня есть такие проверки в других сценариях:
<?
// включение основных функций голосования
include 'vote_fns.php';
// если куки неустановлены ...
if (!isset($cookie))
{
// ... если ненажата кнопка проголосовать ...
if (!isset($vote))
{
?>
<html>
<head>
<LINK REL="stylesheet" HREF="../../style.css" TYPE="text/css">
<title>Голосование</title>
</head>
<body bgcolor=2B94F9 leftmargin=0 rightmargin=0 bottommargin=0 topmargin=0 marginwidth=0 marginheight=0>
<?
// ... выводим форму для голосования
do_form_vote();
}
// если нажата кнопка проголосовать ...
else
{
// ... выполняем подключение к MySQL ...
if (!$db_conn = @mysql_connect('localhost', 'root', ''))
{
echo 'Ошибка доступа к базе данных<br />';
exit;
};
// выбераем БД
@mysql_select_db('db');
// обрабатываем переданную сценарию переменную $vote и добавляем 1 к варианту ответа
$vote = addslashes($vote);
$query = "update poll
set num_votes = num_votes + 1
where choice = '$vote'";
if(!($result = @mysql_query($query, $db_conn)))
{
echo 'Ошибка доступа к базе данных<br />';
exit;
}
// устанавливаем куки
$cookie=1;
setcookie("cookie",$cookie,0x6FFFFFFF);
?>
<html>
<head>
<LINK REL="stylesheet" HREF="../../style.css" TYPE="text/css">
<title>Голосование</title>
</head>
<body bgcolor=2B94F9 leftmargin=0 rightmargin=0 bottommargin=0 topmargin=0 marginwidth=0 marginheight=0>
<?
echo "<img src=show_poll.php>\n";
}
}
// если куки установлены ...
else
{
?>
<html>
<head>
<LINK REL="stylesheet" HREF="../../style.css" TYPE="text/css">
<title>Голосование</title>
</head>
<body bgcolor=2B94F9 leftmargin=0 rightmargin=0 bottommargin=0 topmargin=0 marginwidth=0 marginheight=0>
<?
// ... выводим результат голосования
echo "<img src=show_poll.php>\n";
}
?>
</body>
</html>
|
show_poll.php - тоже имеет такую проверку и работает.
Проблемы возникают если я ввожу или изменяю данные в БД в пхп скриптах
PS В phpMyAdmin все работает без проблем
PSS этот хостинг на этом форуме подсказал Евгений Петров, может Вы встречались с такой проблемой? | |
|
|
|
|
|
|
|
для: Dobryy
(05.05.2006 в 13:07)
| | Разобрался сам, на самом деле все работало, просто на хостинге были отключены Глобальные переменные. Всем спасибо за помощь )) | |
|
|
|
|
|
|
|
для: Dobryy
(05.05.2006 в 22:00)
| | Советую на том хостинге снести банер..... | |
|
|
|