Задавайте вопросы, мы ответим
Вы не зашли.
у меня вот такое дело:
<?php
$db=mysql_connect("localhost", "user");
mysql_select_db("mybd", $db);
$a="INSERT INTO users(n)VALUES('$n')";$result=mysql_querry($a);
не работает.Почему? помогите разобраться
Неактивен
mysql_querry пишется с одним r.
А вообще, имеет смысл писать и выводимые ошибки тоже
Неактивен
С буквой r я просто опечатался. А ошибок никаких нет, просто ничего не вставляется в таблицу. Провожу контроль выполнения запроса, то есть при удачном занесений в таблицу выводится одно сообщение, иначе другое. Так вот, судя по сообщению всё занеслося. Смотрю через phpmyadmin Ничего нет. Уже 3 недели маюсь. В чем моя ошибка?
Неактивен
Используйте диагностику ошибок в своем скрипте
Неактивен
Спасибо, стал выдавать кучу ошибок. попробую разобраться
Неактивен
появляется следующая ошибка: синтаксическая ошибка sql, проверьте руководство, которое соответствует вашей версии mysql. ошибка выдается для строки с запросом о добавлении. Ничего не понимаю, то ли денвер глючит, то ли я тупой.
Неактивен
В приведенном Вами запросе недостаточно пробелов.
$a="INSERT INTO users (n) VALUES ('$n')";
Лучше всего приводить полный текст кода ошибки, а не пересказ.
Неактивен
текст ошибки такой. You have an error in your SQL syntax, check the manual that corresponds to your MySQL server version for the right syntax to use near ''n') VALUES ('')' at line 1
надеюсь Вы эту ошибку правильно поймете и объясните в чем дело. Заранее спасибо
Неактивен
А вот с кавычками Вы перестарались - вокруг n не должно быть кавычек. Если хочется
ограничить названия столбцов, то нужно использовать обратные кавычки (`), а не
прямые (').
Неактивен
хорошо попробую
Неактивен
теперь работает. запись добавляется. но почему то данных введенных мной нет. то есть строка пустая в базе добавляется.
Неактивен
Как смотрели данные в базе. Что значит пустая строка? Чему была равна переменная $n в приведенном скрипте?
Неактивен
записи в базе смотрю через phpmyadmin и через скрипт который выводит содержимое базы. а переменная передается из другого файла посредством хтмл-формы, методом POST тип переменой текстовый. пустая строка значит пустая. значение переменной не заносится в таблицу.
Неактивен
А напишите вместо $n: 'абв' - занесется строка?
Неактивен
да так заносится, уже проверял. и ещё двойные кавычки ставил, в этом случае заносится имя переменной. а вот как значение занести?
Неактивен
Используйте напрямую $_POST['n']
Неактивен
вы имеете ввиду что надо писать вот так: $a = "INSERT INTO users ('n') VALUES ($_POST['n'])";
я правильно Вас понял?
Отредактированно winch (10.07.2008 06:37:28)
Неактивен
$a = "INSERT INTO users ('n') VALUES ('" . $_POST['n'] ."')";
или
$a = "INSERT INTO users ('n') VALUES ('{$_POST[n]}')";
Неактивен
отлично попробую сделать как Вы написали. кстати сделал как написал я, заметил одну вещь, значение переменной записалось, но почему то записываются только цифры. символы и буквы не записываются. пожалуйста, объясните почему?
Неактивен
Возможно тип колонки в таблице - числовой. Если Вы разместите структуру таблицы (SHOW CREATE TABLE имя_таблиц) и реальный текст используемого скрипта, то тема может развиваться быстрее.
Неактивен
таблицу создал через phpmyadmin, тип колонки TEXT.
Неактивен
Возможно, в скрипте у Вас используется intval()
Думаю, без реального кода дальше мы уже не продвинемся.
Неактивен
я сейчас в отпуске. после 23 продолжу пытать вас :-)
Неактивен
здравствуйте. вот текст файла-обработчика.<?php
$db=mysql_connect('localhost',"username");
mysql_select_db('source',$db);
mysql_query(INSERT INTO table ('data') VALUES ("'.$_POST['data'].'")",$db);
if(mysql_error($db)!=""){die(no<br/>\n");}
echo "yes";
mysql_close($db);
?>
Что тут неверно?
Отредактированно winch (31.07.2008 13:44:14)
Неактивен
Вы когда устраняете реальные названия, хотя бы не меняйте остальной код. Этот код не будет
работать просто потому что в нем неправильно расставлены кавычки.
UPD:
После расставления кавычек, Ваш код будет подвержен стандартной атаке SQL_INJECTION.
Нужно использовать addslashes в какой-то форме.
Неактивен