Задать вопрос
LuckydutchRM
@LuckydutchRM
Gypsy

Сбой при доступе к базе данных (Table does not exist)?

Столкнулся с проблемой работы с базами данных с помощью php. В коде вроде все правильно. Проверял 5 раз.

Вызов страницы с формой выдает ошибку о том, что не может найти таблицу, хотя она существует. Если использовать другие базы данных (не test) - выдает ошибку о том, что не может подключиться к базе.

9be80ad5c5754a8884d183a6f6ab18b3.PNGc9b0c10c6f264bbfac9af235015898ce.PNG

Файл login.php
<?php
	$db_hostname = 'localhost';
	$db_database = 'test';
	$db_username = 'root';
	$db_password = '';
?>


Файл sqltest.php
<?php
	require_once 'login.php';
	$db_server = mysql_connect($db_hostname, $db_username, $db_password);

	if (!$db_server) die ("Невозможно подключиться к MYSQL: " . mysql_error());

	mysql_select_db ($db_database, $db_server)
		or die("Невозможно выбрать БД: " . mysql_error());

	if (isset ($_POST['delete']) && isset($_POST['isbn']))
	{
		$isbn = get_post('isbn');
		$query = "DELETE FROM classics WHERE isbn = '$isbn'";

		if (!mysql_query($query, $db_server))
			echo "Сбой при удалении данных: $query<br>" . 
			mysql_error() . "<br><br>";
	}

	if (isset ($_POST['author']) &&
	    isset ($_POST['title']) &&
	    isset ($_POST['category']) &&
	    isset ($_POST['year']) &&
	    isset ($_POST['isbn']))
	{
		$author = get_post('author');
		$title = get_post('title');
		$category = get_post('category');
		$year = get_post('year');
		$isbn = get_post('isbn');

		$query = "INSERT INTO classics VALUES" .
		"('$author', '$title', '$category', '$year', '$isbn')";

		if (!mysql_query($query, $db_server))
			echo "Сбой при вставке данных: $query<br>" .
			mysql_error() . "<br><br>";
	}

	echo <<<_END
	<form action = "sqltest.php" method = "post"><pre>
	  Author <input type = "text" name = "author">
	   Title <input type = "text" name = "title">
	Category <input type = "text" name = "category">
	    Year <input type = "text" name = "year">
	    ISBN <input type = "text" name = "isbn">
		 <input type = "submit" value = "ADD RECORD">
	</pre></form>
_END;

	$query = "SELECT * FROM classics";
	$result = mysql_query($query);

	if(!$result) die ("Сбой при доступе к БД: " . mysql_error());
	$rows = mysql_num_rows($result);

	for($j = 0; $j < $rows; ++$j)
	{
		$row = mysql_fetch_row($result);
		echo <<<_END
	<pre>
	Author   $row[0]
	 Title    $row[1]
	Category $row[2]
	  Year     $row[3]
	  ISBN     $row[4]
	</pre>
	<form action = "sqltest.php" method = "post">
	<input type = "hidden" name = "delete" value = "yes">
	<input type = "hidden" name = "isbn" value = "$row[4]">
	<input type = "submit" value = "DELETE RECORD"></form>
_END;
	}

	mysql_close($db_server);

	function get_post($var)
	{
		return mysql_real_escape_string($_POST[$var]);
	}
?>


Помогите пожалуйста разобраться
  • Вопрос задан
  • 1063 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
unitby
@unitby
А точно у Вас root без пароля? И точно права есть все необходимые?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
LuckydutchRM
@LuckydutchRM Автор вопроса
Gypsy
Пользователи
d67b820f72b148e2b47828722b88c523.PNG
Ответ написан
@AntonMZ
Буду краток. Linux/Windows Administrator.
Хах! У Вашего пользователя нет прав на работу с данной базой данных!!!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы