1

Тема: Создаёт в БД таблицу, но не заполняет данными

Выполняется SQL-запрос при помощи php функции mysql_query(). Соединяюсь с MySQL, в существующей БД создаётся таблица. Использование INSERT INTO при помощи функции mysql_query() игнорируется. Данные не добавляются.
Привилегии SELECT, INSERT, UPDATE, DELETE для пользователя root для БД phpmyadmin установлены.
Подскажите, пожалуйста, в чём проблема?

2

Re: Создаёт в БД таблицу, но не заполняет данными

natalya21
Для root права устанавливать не надо, он должен иметь все права изначально.

Попробуйте в phpMyAdmin этот запрос выполнить.
Если не сможете разобраться, то покажите весь код вместе с запросом.

3

Re: Создаёт в БД таблицу, но не заполняет данными

В phpmyadmin запрос выполняет, и добавляет данные в таблицу, а mysql_query() для INSERT INTO не работает.

config_db.php
<?
$host="localhost";
$user="root";
$pass="1234";

$link=mysql_connect($host, $user, $pass) // Соединение с MySQL
   or die ("Невозможно подключиться к MySQL");
   
$bd_name="test"; // Имя созданной базы данных

if (mysql_select_db($bd_name)) // Выбор базы данных
{
    echo "Подключены к базе данных ".$bd_name;
}
   else echo ("Невозможно выбрать БД");
?>

cr_db_table.php
<?php
include "config_db.php";

$table_name="cat"; // Имя создаваемой таблицы 

$table="CREATE TABLE ".$table_name." (num int(10) NOT NULL auto_increment, name text, PRIMARY KEY (num)) TYPE=MyISAM";

if (mysql_query($table)) // Отсылаем запрос на создание таблицы
{echo "<br />Таблица создана";} 
else echo ("<br />Невозможно создать таблицу"); 

mysql_close($link); // Разрываем соединение с MySQL
?>

add_data_cat.php
<?php
include "config_db.php";

$query="INSERT INTO cat VALUES (3, `frrr`)";

if (mysql_query($query, $link))
{echo "<br />good";}
else {echo "<br />bad";}

mysql_close($link); // Разрываем соединение с MySQL
?>

4

Re: Создаёт в БД таблицу, но не заполняет данными

natalya21
INSERT INTO cat VALUES (3, `frrr`)
Замените косые кавычки (`) на обычные ('). В косые кавычки обрамляются имена БД, таблиц и полей.

5

Re: Создаёт в БД таблицу, но не заполняет данными

Спасибо большое, Hanut. Обидно делать глупые ошибки.
Но теперь не записывает кириллицу.
Так (INSERT INTO cat VALUES (4, 'frrr')) записывает, а так (INSERT INTO cat VALUES (5, 'фррр')) не записывает.

6

Re: Создаёт в БД таблицу, но не заполняет данными

natalya21
После каждой функции mysql_connect надо определять кодировку соединения с MySQL. Если страница сайта у вас windows-1251, то таблицы в БД должны иметь сравнение cp1251_general_ci, а кодировка соединения с MySQL cp1251.

После функции mysql_connect добавьте строку:
mysql_query('SET NAMES cp1251');

7

Re: Создаёт в БД таблицу, но не заполняет данными

Теперь записывает. Спасибо, Hanut!