мой PHP-код НЕ будет вставлять записи в таблицу SQL dabase

У меня есть следующий код / ​​файл PHP на моем сайте, но по какой-то нелогичной причине он не будет вставлять записи, введенные пользователем в таблицу базы данных mySQL, как это требуется. Может ли кто-нибудь сказать мне, почему это?

Насколько я могу сказать, код абсолютно прав, я не знаю, почему это происходит …

Пожалуйста, помогите … Код ниже …

<html> <head> </head> <body> <form action="register_development_file_1.php" method="post"> Email: <input type="text" name="email"><br /> Date: <input type="text" name="date"><br /> Time: <input type="text" name="time"><br /> <input type="submit" name="submit"> </form> <?php if (isset($_POST['submit'])) { $con = mysql_connect("localhost","username","password"); if (!$con) { die("Could not connect to the database: " . mysql_error()); } mysql_select_db("wwwbrecs_BREC",$con); $sql = "INSERT INTO 'signups' ('signup_email_address', 'signup_date', 'signup_time') VALUES ('$_POST[email]','$_POST[date]','$_POST[time]')"; mysql_query($sql,$con); mysql_close($con); } ?> </body> </html> 

В вашем запросе есть синтаксическая ошибка, вы не указали название таблицы и столбец с кавычками, по крайней мере, вы можете использовать обратную линию `

 INSERT INTO 'signups' ('signup_email_address', 'signup_date','signup_time') 

Должно быть

 INSERT INTO signups (signup_email_address, signup_date, signup _time) VALUES 

Или

 INSERT INTO `signups` (`signup_email_address`, `signup_date`, `signup _time`) VALUES 

Только значения (фактически не целые числа для целых столбцов) должны быть окружены кавычками ' .

Затем я хотел бы запомнить вас, что функции mysql_ устарели, поэтому я бы посоветовал вам переключиться на mysqli или PDO и вы действительно рискуете sql injection , посмотрите здесь. Как я могу предотвратить SQL-инъекцию в PHP? , Вы должны использовать подготовленный статус, чтобы избежать любого риска

таблица signups не должна быть окружена одинарными кавычками, но апострофы `

Следовательно

  $sql = "INSERT INTO 'signups' ('signup_email_address', 'signup_date', 'signup_time') VALUES ('$_POST[email]','$_POST[date]','$_POST[time]')"; 

Должно быть

  $sql = "INSERT INTO `signups` ('signup_email_address', 'signup_date', 'signup_time') VALUES ('$_POST[email]','$_POST[date]','$_POST[time]')"; 
 <?php $sql = " INSERT INTO signups (signup_email_address, signup_date, signup_time) VALUES ('" . mysql_real_escape_string($_POST['email']) . "','" . mysql_real_escape_string($_POST['date']) . "', '" . mysql_real_escape_string($_POST['time']) . "')"; 

это должно сделать трюк, а также проверить свою безопасность

Здесь вы создали лучшую версию скрипта, потому что ваша была на 100% открытой для SQL-инъекций и даже не обычным способом кодирования, это безопаснее, но если вам нужно безопасно, я предлагаю вам узнать о PDO отсюда

 <?php if(isset($_POST['submit'])){ mysql_connect("localhost","username","password") or die(mysql_error()); mysql_select_db("wwwbrecs_BREC", $con) or die(mysql_query()); $email = mysql_real_escape_string($_POST['email']); $date = mysql_real_escape_string($_POST['date']) $time = mysql_real_escape_string($_POST['time']) $sql = "INSERT INTO signups ('signup_email_address', 'signup_date','signup_time') VALUES ('".$email."','".$date."','".$time."')"; mysql_query($sql, $con) or die(mysql_error()); mysql_close($con); }