MySql insert query не работает в PHP?

<?php
            $con = mysql_connect("localhost:3306","root","");
            try
            {
                if (!$con)
                 {
                     die('Could not connect to MySql Server : ' . mysql_error());
                }

                $db_found = mysql_select_db("registerdb");  

                if ($db_found) 
                {
                    print "Database Found";
                }
                else 
                {
                    print "Database NOT Found";
                }
                mysql_query("INSERT INTO register VALUES ('$_POST[Field2]','$_POST[Field4]','$_POST[Field7]','$_POST[Field8]','$_POST[Field9]','$_POST[Field13]','$_POST[Field14]','$_POST[Field15]')");

                mysql_close($con);
            }
            catch(Exception $e)
            {
                echo 'Message: ' .$e->getMessage();
            }
?>

Я не получаю никаких ошибок во время выполнения, выберите запрос, отлично работающий для той же базы данных. Вот защита таблицы для регистрации

 Name          Type           Null      Key
 id       bigint(10)      NO        PRI     auto_increment
sname     varchar(20)     NO             
dob       date  YES       NULL   
email     varchar(30)     NO             
gender    varchar(7)      NO             
mobile    int(10)     YES            
country       varchar(15)     NO             
state     varchar(15)     YES            
city      varchar(15)     YES 

Я не получаю никакой ошибки sysntax в php.

Извините за свои ошибки, я отредактировал его.

1
Вам не хватает ' для последнего значения ' $ _ POST [Field15]
добавлено автор asprin, источник
Начните использовать PDO или mysqli и прекратите использовать mysql, поскольку он устарел. Также MySQL не генерирует исключений, поэтому try catch вроде бесполезен :)
добавлено автор Vlad Preda, источник
Голосование закрывается как слишком локализованное из-за опечатки. Например, опечатку можно было бы легко избежать с помощью параметризованных запросов. знак равно
добавлено автор J. Steen, источник
sql Предупреждение о впрыске!
добавлено автор tomexsans, источник
также используйте ('". $ _ POST [' Field4 ']."', '".
добавлено автор user1646111, источник

6 ответы

Вы испортили свою четвертую переменную:

POST[Field4] [Should Be] $_POST[Field4]

Вы также пропустили заключительную цитату после Field15

Чтобы избежать каких-либо ошибок, также рекомендуется включить вашу схему в запрос:

INSERT INTO example_table (field1, field2, field3) VALUES (value1, value2, value3);

<Сильный> ИЗМЕНИТЬ

Как насчет того, что мы пытаемся выполнить весь опрос Query ...

mysql_query('INSERT INTO register VALUES ("'.$_POST['Field2'].'","'.$_POST['Field4'].'","'.$_POST['Field7'].'","'.$_POST['Field8'].'","'.$_POST['Field9'].'","'.$_POST['Field13'].'","'.$_POST['Field14'].'","'.$_POST['Field15'].'")');
2
добавлено
Не обязательно
добавлено автор asprin, источник
Да, я честно не знал, что вам не нужна схема ... Чем больше вы знаете ^. ^
добавлено автор Matt Clark, источник
@Mayur см. Мое редактирование, а также вы можете опубликовать свой HTTP-запрос со всеми переменными POST?
добавлено автор Matt Clark, источник
Итак ... что вы говорите, так это то, что мой самый первый пост, который я отредактировал, потому что все были заблокированы, на самом деле был правильным ответом, и хотя у меня все еще есть правильный ответ на моем посту, кто-то еще был отмечен как правильный? Удивительно, рад помочь!
добавлено автор Matt Clark, источник
ошибка не для этого.
добавлено автор Dnyan Waychal, источник
@ Матт Кларк отправил свой ответ перед тобой, но кто-то отказался от него. Поэтому он возвращает свою мысль.
добавлено автор Mayur, источник
@Matt Clark это была проблема автоматического увеличения, я проходил минимальные параметры, я не передавал ключевое слово DEFAULT для автоматического увеличения.
добавлено автор Mayur, источник
@Matt Кларк только что редактировал мой вопрос, я попробовал, все еще не работаю.
добавлено автор Mayur, источник
,'$_POST[Field15])'");
                  ^_______________ Missed quote.

Используйте параметры вместо конкатенации данных POST, чтобы избежать потенциальной инъекции SQL.

2
добавлено

На самом деле синтаксис был неправильным,

Insert into register ('field1','field2',...,'field n') values ('value1','value2',..,'value n');
2
добавлено
Нет, есть веские причины, чтобы перечислять имена полей, но если вы вставляете в скрытные поля, начиная с первого, они не являются обязательными.
добавлено автор MortenSickel, источник
Голосование, потому что я ненавижу, когда люди явно принимают ответ, но не голосуют за него.
добавлено автор bowlerae, источник
@sibimani спасибо за помощь.
добавлено автор Mayur, источник
@bowlerae кто-то проголосовал за него, изначально это было -1, я оценил его на -1 до 0, вы голосуете за 1. получили его.
добавлено автор Mayur, источник
@Sibi_it Для автоматического ввода указателя столбца верны. Я.Net разработчик считал, что MySQL автоматически увеличивает значение, подобное серверу sql.
добавлено автор Mayur, источник
И то же самое не использовать значение $ _POST [значение] в запросе. Лучше присвойте значение некоторой переменной, например $ field1 = $ _POST [field1]. после этого используйте эту переменную в запросе.
добавлено автор sibimani, источник
На самом деле, если вы упомянете, как $ _POST ['value'] в запросе, это даст ошибку.
добавлено автор sibimani, источник

mysql_query не генерирует исключений, вам нужно проверить его возвращаемое значение и вызвать mysql_error для получения дополнительной информации.

Как указано в комментариях, MySQL ist устарел.

0
добавлено

Я не вижу никаких проблем здесь, но я думаю, что «POST [Field4]» - это опечатка, но, как говорили другие, вы действительно не должны использовать функции mysql_.

0
добавлено

Это должно выглядеть так:

$query = "INSERT INTO table(column 1, column 2, column 3) VALUES('".$value1."','".$value2."', '".$value3."')";

Попробуй это.

0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp