|
|
|
| Помогите найти ошибку)
Через форму не добавляются данные в mySQL
Вот форма:
<form action="" method="post" name="form"></form>
<p>Введите имя: </p> <input name="name" type="text" size="20" maxlength="40"><br>
<p>Введите фамилию: </p><input name="lastname" type="text" size="20" maxlength="40"><br>
<p>Должность:</p><input name="dol" type="text" size="20" maxlength="40"><br>
<input name="sumbit" type="submit" value="Отправить в базу">
Вот PHP:
<?php
if (isset($_POST['name']))
{
$name = $_POST['name'];
}
if (isset($_POST['lastname']))
{
$lastname = $_POST['name'];
}
if (isset($_POST['dol']))
{
$dol = $_POST['dol'];
}
$db = mysql_connect("localhost","admin","12345");
mysql_select_db ("firstBD",$db);
$result = mysql_query ("INSERT INTO '1th' ('name','lastname','dol') VALUES (" . $_POST['name'] . ", " . $_POST['lastname'] . ", " . $_POST['dol'] . ")");
if ($result == 'true')
{
echo "inter cool";
}
else
{
echo "not cool";
}
?> | |
|
|
|
|
автор: Commander (чужой комп) (20.03.2010 в 20:23) |
|
|
для: Andreano
(20.03.2010 в 20:04)
| | Попробуйте так:
<?php
if (!empty($_POST)){
$name = $_POST['name'];
$lastname = $_POST['lastname'];
$dol = $_POST['dol'];
}
$db = mysql_connect("localhost","admin","12345");
mysql_select_db ("firstBD",$db);
$result = mysql_query("INSERT INTO `1th`(`name`,`lastname`,`dol`) VALUES('$name','$lastname','$dol')");
?>
|
| |
|
|
|
|
|
|
|
для: Commander (чужой комп)
(20.03.2010 в 20:23)
| | не работает)
Там проблема скорей всего в граммотности)) я только изучать начал php поэтому мог что то упустить)) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 20:30)
| | В запросе должно быть три вида кавычек:
двойные " " ;
одинарные ' ';
и где буква ё ` ` | |
|
|
|
|
|
|
|
для: Yuriev
(20.03.2010 в 20:32)
| | Стой.. я не понял... у мня кавычки не правильно стоят или что?
просто про `(ё) впервый раз слышу)) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 20:36)
| | Имя таблицы и имена колонок надо писать без кавычек, если они из одного слова, или в кавычках, где буква ё
INSERT INTO `1th` (`name`, `lastname`, `dol`)
или
INSERT INTO 1th (name, lastname, dol) | |
|
|
|
|
|
|
|
для: Yuriev
(20.03.2010 в 20:44)
| | Это почему же прямо надо без кавычек (кстати, в примере у вас апострофы, а не обратные кавычки, как должно было бы быть)? Где такое сказано? Ответить лучше ссылкой на документацию. | |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 20:48)
| | Имелось ввиду, что надо ставить правильные кавычки или не ставить никаких в случаях, когда это допустимо | |
|
|
|
|
|
|
|
для: Yuriev
(20.03.2010 в 20:54)
| | Вот и объясните мне, почему их не надо ставить, даже когда это допустимо. | |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 20:59)
| | Потому, что когда это допустимо, лучше не ставить, чем ставить не те, что надо | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 20:30)
| | Учитесь и ошибки находить.
Добавьте смерть() в конец запроса и посмотрите, что вам сам mysql скажет на ваше обращение с ним:
<?php
$result = mysql_query("INSERT INTO `1th` (`name`,`lastname`,`dol`) VALUES('$name', '$lastname', '$dol')") or die( mysql_error() );
|
А в самом начале скрипта выставьте уровень ошибок:
error_reporting(E_ALL); | |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 20:46)
| | Все равно форма ни добавляет в базу, ни по нажатии кнопки ошибка не выскакивает) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 20:50)
| |
<?php
if (isset($_POST['name']))
{
$name = $_POST['name'];
}
if (isset($_POST['lastname']))
{
$lastname = $_POST['name'];
}
if (isset($_POST['dol']))
{
$dol = $_POST['dol'];
}
$db = mysql_connect("localhost","admin","12345");
mysql_select_db ("firstBD",$db);
$result = mysql_query ("INSERT INTO '1th' ('name','lastname','dol') VALUES (" . $_POST['name'] . ", " . $_POST['lastname'] . ", " . $_POST['dol'] . ")");
if ($result == 'true')
{
echo "inter cool";
}
else
{
echo "not cool";
}
|
синтаксических ошибок нет | |
|
|
|
|
|
|
|
для: Ури Геллер
(20.03.2010 в 20:55)
| | Ну если ошибок нет) тогда в чем проблема? | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 20:59)
| |
<?php
error_reporting(E_ALL);
if (isset($_POST['name'])) {
$name = mysql_real_escape_string($_POST['name']);
} else {
$name = '';
}
if (isset($_POST['lastname'])) {
$lastname = mysql_real_escape_string($_POST['name']);
} else {
$lastname = '';
}
if (isset($_POST['dol'])) {
$dol = mysql_real_escape_string($_POST['dol']);
} else {
$dol = '';
}
$db = mysql_connect("localhost", "admin", "12345");
if(!$db) {
echo 'Подключиться не удалось';
}
mysql_select_db("firstBD");
$result = mysql_query ("INSERT INTO `1th` (`name`, `lastname`, `dol`)
VALUES ('$name', '$lastname', '$dol')")
or die ( mysql_error() );
if ($result) {
echo "inter cool";
} else {
echo "not cool";
}
?>
|
Попробуйте этот код.
Я не знаю, что у вас там с магическими кавычками..но не стал лишних проверок делать. | |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 21:05)
| | Если вводить в форму и отправить, опять же ничего не происходит)
ТАк что может в форме проблема? | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:08)
| | </form> должен стоять в конце формы... | |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 21:14)
| | Точно)) глупая ошибка))
НО форма как бы отправляет но не появляется страница с надписью inter cool)
и в базе данных не появляется( | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:20)
| | А not cool пишет? | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:20)
| | А что на страницу выводится? not cool? | |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 21:22)
| | Нет.. форма и остается... просто заполнение её исчезает и все)) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:23)
| |
<?php
error_reporting(E_ALL);
if (isset($_POST['name'])) {
$name = mysql_real_escape_string($_POST['name']);
} else {
$name = '';
}
if (isset($_POST['lastname'])) {
$lastname = mysql_real_escape_string($_POST['name']);
} else {
$lastname = '';
}
if (isset($_POST['dol'])) {
$dol = mysql_real_escape_string($_POST['dol']);
} else {
$dol = '';
}
/*
$db = mysql_connect("localhost", "admin", "12345");
if(!$db) {
echo 'Подключиться не удалось';
}
mysql_select_db("firstBD");
$result = mysql_query ("INSERT INTO `1th` (`name`, `lastname`, `dol`)
VALUES ('$name', '$lastname', '$dol')")
or die ( mysql_error() );
if ($result) {
echo "inter cool";
} else {
echo "not cool";
}
*/
$sql = "INSERT INTO `1th` (`name`, `lastname`, `dol`)
VALUES ('$name', '$lastname', '$dol')";
echo $sql;
?>
<form action="" method="post" name="form">
<p>Введите имя: </p> <input name="name" type="text" size="20" maxlength="40"><br>
<p>Введите фамилию: </p><input name="lastname" type="text" size="20" maxlength="40"><br>
<p>Должность:</p><input name="dol" type="text" size="20" maxlength="40"><br>
<input name="sumbit" type="submit" value="Отправить в базу">
</form>
|
Этот код что на страницу выводит? | |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 21:25)
| | ввожу в форму нажимаю отправить и выводит
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'Друнька'@'localhost' (using password: NO) in Z:\home\localhost\www\PHP\mysqlinsert.php on line 12
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Z:\home\localhost\www\PHP\mysqlinsert.php on line 12
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'Друнька'@'localhost' (using password: NO) in Z:\home\localhost\www\PHP\mysqlinsert.php on line 18
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Z:\home\localhost\www\PHP\mysqlinsert.php on line 18
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'Друнька'@'localhost' (using password: NO) in Z:\home\localhost\www\PHP\mysqlinsert.php on line 24
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Z:\home\localhost\www\PHP\mysqlinsert.php on line 24
INSERT INTO `1th` (`name`, `lastname`, `dol`) VALUES ('', '', '')
Введите имя:
Введите фамилию:
Должность: | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:28)
| | Добавьте в самое начало скрипта эти строки:
$db = mysql_connect("localhost", "admin", "12345");
if(!$db) {
echo 'Подключиться не удалось';
}
mysql_select_db("firstBD");
|
| |
|
|
|
|
|
|
|
для: neadekvat
(20.03.2010 в 21:34)
| | выводит INSERT INTO `1th` (`name`, `lastname`, `dol`) VALUES ('Андрей', 'Андрей', 'Люд')
+ форму)) но в базу ничего не добавляется))
Вобсче ладно)) Огромное всем спасибо... походу будет проще не искать тут проблему, а если комуто не лень
Пожалуйсто напишите короткий пример как с помощью формы и тега ПОСТ
добавлять данные в mysql | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:38)
| | Бросаете вот так, когда решение почти найдено?..
Вы код то хоть раскомментировали, который должен в базу добавлять? | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:38)
| | у Вас ошибка при обращении к базе данных, скрипт не может соедениться с базой, проверте настройки соединения | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.03.2010 в 21:46)
| | База данных на локальном сервере, другой пример который я разбирал(по урокам), без всяких проблем выводит данные) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:51)
| | Ну что-то же возвращает база? кул или не кул? | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 21:51)
| | Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Доступ закрыт для пользователя'Друнька'@'localhost' (using password: NO) in Z:\home\localhost\www\PHP\mysqlinsert.php on line 12
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Связь с сервером не может быть создана in Z:\home\localhost\www\PHP\mysqlinsert.php on line 12
ВЫДЕЛЕНО ЖИРНЫМ ШРИФТОМ, проверяй настройки соединения... | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.03.2010 в 22:01)
| | А где эти настройки то)? | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:02)
| | $db = mysql_connect("localhost", "admin", "12345");
вот твои настройки - имя хоста, имя пользователя, пароль
mysql_select_db("firstBD")
выбранная база данных
и вот это смущает Друнька'@'localhost
имя юзера ну очень странно отображается.... | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.03.2010 в 22:06)
| | Вот имя юзера:
root@localhost
Только почему оно так криво отображается) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:08)
| | можно поменять через phpmyadmin, в разделе "привилегии"... | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.03.2010 в 22:16)
| | User Host Password Global privileges 1 Grant
admin localhost 12345 Yes ALL PRIVILEGES Yes
Вот. правда я тут ничего плохого не вижу))
проблема в коде )) даже если бы и нет)) очень был бы благодарен если бы кто-то написал простой пример как ввести в базу данных значения через формы....
я просто это изучаю по видео уроку трех летней давности))вот и возникают проблемы совместимости)) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:22)
| | у тебя проблемы с соединением с базой, вот с этого и начинай
создай отдельный файл для подключения к базе
назови данный файл, например, connect.php
<?php
//подставь свои значения
$user = "";
$password = "";
$host = "";
$database = "";
// соединяемся с сервером
$db = mysql_connect($host,$user,$password) or die ("в данный момент сервер mysql недоступен");
// выбираем базу данных
mysl_select_db($database) or die ("в данный момент БД недоступна");;
// настраиваем кодировку соединения
mysql_query("SET NAMES 'cp1251'");
?>
|
следующий файл с формой и запросом
<?php
// настраиваем уровень ошибок
error_reporting(E_ALL);
// подключаем файл connect.php
require_once("connect.php");
if(isset($_POST['submit')){
$query="UPDATE `table` SET `name` = '".$_POST['name']."'";
if(mysql_query($query)){
echo "данные записаны";
}
else{
echo "данные не записаны";
}
}
?>
<form action="" method="post">
<input type="text" name="name">
<input type="submit" name="submit" value="отправить">
</form>
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(20.03.2010 в 22:42)
| | Пасиба)) большое)) завтро опробую)) сейчас спать уже пора))) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:49)
| | > я просто это изучаю по видео уроку трех летней давности))вот и возникают проблемы совместимости))
это здесь ни при чём... | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:08)
| | скорей всего не в той кодировке к базе данных запрос поступает
mysq_query("SET NAMES 'cp1251'");
вот там можно настроить кодировку соединения. | |
|
|
|
|
автор: .heed (20.03.2010 в 22:37) |
|
|
для: Andreano
(20.03.2010 в 22:08)
| | > автор: neadekvat (20.03.2010 в 21:34) письмо автору
>Добавьте в самое начало скрипта эти строки: $db = mysql_connect ......
или попробуйте в например таком скрипте с вашим паролем менять местами соединение с сервером и вызов mysql_real_escape_string()
<?
//error_reporting(E_ALL);
//1.
if (!$link = mysql_connect('localhost', 'root', 'root'))
exit('exit'. mysql_error());
//2.
$txt = mysql_real_escape_string('abc');
|
| |
|
|
|
|
|
|
|
для: .heed
(20.03.2010 в 22:37)
| | Вот что вывело)
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in Z:\home\localhost\www\PHP\mysqlinsert.php on line 12
exitAccess denied for user 'root'@'localhost' (using password: YES) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:39)
| | опять же повторю, здесь говорится, что отказано в доступе...
сначала подключайся к базе данных, потом обрабатывай и записывай данные.... | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:39)
| | > с вашим паролем
Вы пароль ставили свой ? пользователь "root" с паролем "root" это у меня такой | |
|
|
|
|
|
|
|
для: heed
(20.03.2010 в 22:49)
| | Да свой)) пользователь админ пароль 12345)) в этом уверен)) я ниже описался0) перепутал)) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 22:56)
| | >пользователь админ
если имя пользователя русскими буквами, то ещё под вопросом в какой кодировке оно записалось в базу данных (взависимости от того какой программой создавался этот пользователь)
и кодировка соединения по умолчанию должна быть точно той-же в которой это имя пользователя пишите в скрипте (если конечно там вообще правильно записалось это имя)
Не парьте мозг,) и зарегистрируйте в mysql нового пользователя назвав его английскими буквами
, или если ничего не меняли пользователь 'root' пароль '' (пустая строка) | |
|
|
|
|
|
|
|
для: heed
(20.03.2010 в 23:07)
| | я латиницей зареген))
просто лень было переклучать раскладку) )вот и напечатал рускими))) | |
|
|
|
|
|
|
|
для: Andreano
(20.03.2010 в 23:13)
| | Остаётся только догадываться что это у Вас не пароль и имя пользователя mysql а просто от учётной записи в виндовс :)
Так меняли пользователя по умолчанию "root" c паролем "" ? | |
|
|
|
|
|
|
|
для: heed
(20.03.2010 в 23:22)
| | Что-то мне подсказывает, что это denwer стоит, но утверждать не буду.
Если все-таки денвер - то нафига там вообще ковырятся в настройках? =) | |
|
|
|