Jump to content
  • 0

Помогите новичку соединиться с базой данных


veromi
 Share

Question

На сервере в PHPMyAdmin создал базу данных email_list в ней создал таблицу rassilka, в таблице создал

создал 5 полей:

id автоинкремент, по порядку: 1,2,3,4 итд

name

email

from

comment

далее сделал форму для заполнения этой таблицы.. форма с проверкой, чтоб ячейки не были пустыми.

все делал по книге..

<body>

<?php
error_reporting(E_ALL);


//Создаем перменные

$name='';
$email='';
$from='';
$comment='';



if (isset($_POST['submit'])){


$name=$_POST['name'];
$email=$_POST['email'];
$from=$_POST['from'];
$comment=$_POST['comment'];
$output_form = false;

if (empty($name)){
echo ' <div id="answer">Нужно указать Имя, желательно реальное</div> ';
$output_form = true;
}

if (empty($email)){
echo ' <div id="answer">Это база для рассылки, EMAIL обязателен</div> ';
$output_form = true;
}

if (empty($from)){
echo ' <div id="answer">Вы забыли указать из какой страны этот емейл</div> ';
$output_form = true;
}

if ( (!empty($name)) && (!empty($from)) && (!empty($email)) ) {


//Если все заполнено верно коннектимся к базе и передаем запрос на добавление данных в базу данных

$dbc=mysqli_connect ('localhost', 'login', 'password', 'email_list ')
or die ('Ошибка соединения с MySQL-сервером');

$query = "INSERT INTO rassilka (name, mail, from, comment) " .
"VALUES ('$name', '$email', '$from', '$comment')";

mysqli_query($dbc, $query)
or die ('Ошибка при выполннии запроса к базе данных');

mysqli_close($dbc);

echo 'Вы успешно добавили новый емейл для рассылки';

$name='';
$from='';
$email='';
$comment='';
$output_form = true;
}






}
else { $output_form = true;
}
if ($output_form) {
?>

<div id="form">

<form name="addmail" id="addmail" action="rassilka.php" method="post">
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td><div align="right"><label for="name">Имя:</label></div></td>
<td><input name="name" type="text" class="formstyle" id="name" value="<?php echo $name; ?>" autofocus/><br />
</td>
</tr>

<tr>
<td><div align="right"><label for="email">Email:</label></div></td>
<td>
<input name="email" type="text" class="formstyle" id="email" value="<?php echo $email; ?>"/><br />

</td>

</tr>
<tr>
<td><div align="right"><label for="subject">Откуда</label></div></td>
<td><input name="from" type="text" class="formstyle" id="from" value="<?php echo $from; ?>" /></td>

<tr>
<td><div align="right"><label for="message">Комментарий:</label></div></td>
<td>
<textarea name="comment" cols="45" rows="5" id="comment" contenteditable="true" ><?php echo $comment; ?></textarea>
</td>

</tr>
<tr>
<td></td>
<td>
<input type="submit" name="submit" class="button" value="Отправить" />
</td>
</tr>
</table>
</form>
</div>

<?php
}
?>



</body>

выдает Ошибка при выполннии запроса к базе данных

помогите разобраться? у меня уже процессор кипит :)

Link to comment
Share on other sites

Recommended Posts

  • 0

У тебя переменные в кавычках

$query = "INSERT INTO rassilka (name, mail, from, comment) " .
"VALUES ('$name', '$email', '$from', '$comment')";

Попробуй убрать кавычки -

$query = "INSERT INTO rassilka (name, mail, from, comment) " .
"VALUES ($name, $email, $from, $comment)";

Link to comment
Share on other sites

  • 0

а вы пользователя создали?)(в PHPMyAdmin(привилегии))если да то все права ему назначили?)

да и простите что это

$query = "INSERT INTO rassilka (name, mail, from, comment) " .

"VALUES ('$name', '$email', '$from', '$comment')";

(то что подчеркнуто)

может так надо=)

$query = "INSERT INTO `rassilka` (`name`, `mail`, `from`, `comment`) VALUES ('$name', '$email', '$from', '$comment')";

или без кавычек)

$query = "INSERT INTO rassilka (name, mail, from, comment) VALUES ($name, $email, $from, $comment)";

как вам угодно=)

Edited by biginer
Link to comment
Share on other sites

  • 0

Не работает по прежнему..

Пробовал копировать текст, как вы написали - безтолку..

Да еще.. создал на домашней локальной машине такую же б.д (Апачи + MySQL), с дакой же таблицей, таким же пользователем, дал ему все права..

И ..

тоже самое..

Ошибка при выполннии запроса к базе данных

Посмотри плиз повнимательнее.. мож что-то еще я накосячил...

Это мой первый скрипт..

Сижу уже 5 часов с этой ерундой.. Уже глаза болят.. :(

Еще вопрос в догонку.. Существует ли терминал какой-нибудь.. В котором можно попробовать вручную эти команды...

Если есть - подскажите где скачать..

Link to comment
Share on other sites

  • 0

попробуйте так=)

mysqli_query($query)or die ('Ошибка при выполннии запроса к базе данных');

:)

да и бы на вашем месте взял бы конект в к базе выделил в отдельный файл так прост будет проще)

эм я не совсем понимаю о чем вы

Существует ли терминал какой-нибудь.. В котором можно попробовать вручную эти команды...

Если есть - подскажите где скачать..

Edited by biginer
Link to comment
Share on other sites

  • 0

Еще вопрос в догонку.. Существует ли терминал какой-нибудь.. В котором можно попробовать вручную эти команды...

Если есть - подскажите где скачать..

Так если у тебя стоит на машине mysql, то просто открой командную строку и вызови mysql..

Link to comment
Share on other sites

  • 0

Сценарий по прежнему не работает..

Существует ли способ отследить где ошибка? может команда какая есть, которая напишет в каком месте ошибка?

О терминале было написано в самом начале книги, но:

при попытке запустить из командной строки пишет: "Не удается найти mysql проверьте правильно ли указано имя и повторите попытку.."

У меня стоит win7 64x. может с этим связано?

mysql работает, я в нее захожу, создаю базу, таблицу, пользователя, но через командную строку не работает.

Link to comment
Share on other sites

  • 0

что я ссделал


$query = "INSERT INTO rassilka (name, mail, from, comment) VALUES ($name, $email, $from, $comment)";


mysqli_select_db ("rassilka", $dbc);
mysqli_query($dbc, $query)
or die ('Ошибка при выполннии запроса к базе данных');

mysqli_close($dbc);

echo 'Вы успешно добавили новый емейл для рассылки';
echo mysqli_errno() . ": " . mysqli_error() . "\n";



теперь пишет

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in Z:\home\site.ru\www\rassilka.php on line 57

Ошибка при выполннии запроса к базе данных

если в запросе mysqli_select_db поменять местами переменные - то пишт как и раньше

Ошибка при выполннии запроса к базе данных

Link to comment
Share on other sites

  • 0

Clipboard01.jpg

Попробуй вывести переменные

$name

$email

$from

$comment

я пытался явным образом указать..

то есть

$query = "INSERT INTO rassilka (name, mail, from, comment) VALUES (alex, ttt@tt.ru, абырвалг, 1)";

та же самоая надпись

Link to comment
Share on other sites

  • 0

Если так

mysqli_select_db ("toniartl_rassilka", $dbc);

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in Z:\home\site.ru\www\rassilka.php on line 56

Ошибка при выполннии запроса к базе данных

Если так

Правильнее всё же:

mysqli_select_db($dbc,"toniartl_rassilka");

Ошибка при выполннии запроса к базе данных

Link to comment
Share on other sites

  • 0

Если это


mysqli_query($dbc, $query)

or die ('Ошибка при выполннии запроса к базе данных');

заменить на это


mysqli_query($dbc, $query);


mysqli_error();

то пишет

Warning: mysqli_error() expects exactly 1 parameter, 0 given in Z:\home\site.ru\www\rassilka.php on line 64

Вы успешно добавили новый емейл для рассылки

64 стока это mysqli_error();

пробните
$query = "INSERT INTO `rassilka` (`name`, `mail`, `from`, `comment`) VALUES ('$name', '$email', '$from', '$comment')";

ЕСС... Мы победили ее.. Точне ВЫ.

Вы успешно добавили новый емейл для рассылки

Ток не понял что тут изменилось

Link to comment
Share on other sites

  • 0
передай так mysqli_error($dbc);

Куда его вставлять?

Объясните пожайлуста на пальцах.. что у меня было не так?

откуда взялись ````такие кавычки... првый раз про них слышу.

все работает данные заносятся..

проверил уже..

Спасибо вам огромное..

Ток хотелось бы понять магию ``` кавычек :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy