У меня подобная ошибка была а теперь проблема. Базу данных создал в phpMyAdmin. БД - users. В ней одна таблица - user. В таблице четыре поля: id - это primary key и auto_increment, тип - int. e-mail - тип text. nickname - тип text. password - тип text. Заполнил в том же phpMyAdmin две строчки. Дальше код. Пока просто разбираюсь с MySQL, поэтому на ввод проверок не делаю. 1 страница: HTML: <form action="registration.php" method="get"> <table border=0> <tr><td>Почта</td><td><input type=text name="email"/></td></tr> <tr><td>Имя</td><td><input type=text name="nickname"/></td></tr> <tr><td>Пароль</td><td><input type=password name="pass"/></td></tr> <tr><td></td><td><input type=submit value="Зарегестрироваться"/></td></tr> </table> </form> Здесь без вопросов: проверка на следующей странице подтверждает, что вроде все ок. 2 страница: вначале просто проверяю, передаются ли данные с предидущей страницы: PHP: Вы ввели следующие данные:<br/> Почта: <?echo $_GET['email']?><br/> Имя: <?echo $_GET['nickname']?><br/> Пароль: <?echo $_GET['pass']?><br/> Дальше делаю переменные для ввода в базу новой строки: PHP: <? $dbhost ="localhost"; $dbuser ="root"; $dbpass ="hello13"; $email=$_GET['email']; $nickname=$_GET['nickname']; $pass=$_GET['pass']; $query=" INSERT INTO users.user ( e-mail , nickname , password ) VALUES ($email,$nickname,$pass} ) "; Делаю ввод: PHP: if($connect=mysql_connect($dbhost,$dbuser,$dbpass)) { echo "соединение установлено.<br/>"; if($select_db=mysql_select_db('users',$connect)) {echo 'Соединение с базой установлено<br/>';} else {echo 'Соединение с базой тупит<br/>';} if(mysql_query($query,$connect)) echo "Данные успешно занесены.<br/>"; else {echo "Данные где-то тупят.<br/>";mysql_error();} } Далее вывод всей таблицы(здесь тожде вопросов нет, но на всякий случай привожу весь код): PHP: $db = mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db("users",$db); $result = mysql_query("SELECT * FROM user",$db); $num_rows = mysql_num_rows($result); for ($i=0;$i<$num_rows;$i++) { printf("email: %s<br>\n", mysql_result($result,$i,"e-mail")); printf("NickName: %s<br>\n", mysql_result($result,$i,"nickname")); printf("Password: %s<br>\n", mysql_result($result,$i,"password")); } ?> В итоге выводится следующая картина: Вы ввели следующие данные: Почта: 1 Имя: 2 Пароль: 3 соединение установлено. Соединение с базой установлено Данные где-то тупят. email: admin NickName: admin Password: hello13 email: 5 NickName: 5 Password: 5 То есть вначале выдавало ошибку Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ... А когда сделал переменные $email=$_GET['email']; $nickname=$_GET['nickname']; $pass=$_GET['pass']; Просто ничего не делает. Что не так, можете подсказать???
Код (Text): $query="INSERT INTO users.user (`e-mail`, `nickname`, `password`) VALUES ('{$email}', '{$nickname}', '{$pass}')"; советую вначале генерировать запрос, затем выводить в браузер, а не сразу посылать мускулу. и ТО, что вывелось в браузер, попробовать отправить в мускул вручную. обычно ошибки видно сразу.
О, так заработало... Как я понимаю, основная проблема проблема в этих кавычках была: ` Это фишка MySQL такие кавычки ставить? И вообще это ж вроде как апостроф... Или я не понял, или я так и делал??? В смысле втупую забить MySQL запрос в phpMyAdmin?[/quote]
данные не в кавычках! зачем нужна фигурная скобка? апострофами в мускуле ограничиваются названия полей/столбцов/таблиц. если отлаживать код, то после объявления переменной $query нужно её выводить в браузер Код (Text): $query = "..."; echo $query; exit(); затем строка (которая по идее отсылается в мускул) вручную выполняется в phpMyAdmin. все ошибки будут налицо.
Просто не вводится именно когда убираю апострофы... Хотя вроде они даже не во всех манулаха есть - эти апострофы... Ну да ладно - буду с ними писать...
потому что или e-mail нельзя, или password - предопределённое слово. чтобы мускул не путал названия полей и инструкций/функций, названия полей и заключаются в апострофы. кстати, в PostgreSQL для той же цели вместо апострофов используются одинарные кавычки