Ниже мой php-скрипт для ввода данных в мою базу данных из моей формы. Вы можете увидеть мою форму здесь ... http://studentnet.kingston.ac .uk / ~ k1202101 /shops2 / CreateNewAccount.html

Я получаю сообщение об ошибке, когда пытаюсь отправить форму. Я получаю сообщение об ошибке

'Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'Name, Medical Information, First Name, Membership Type, D.O.B, Gender, Membershi' в строке 1 '

Я просмотрел свой код, но все еще не вижу, где я ошибся? Любая помощь будет принята с благодарностью.

<?php
define('DB_NAME', 'demo');   //**your database name
define('DB_USER','alex'); //**your user ID
 //**your password
define('DB_HOST', 'localhost'); //**your local host or KU host
$link = mysql_connect(DB_HOST, DB_USER);
if(!$link)
{
    die('Could not  connect: ' .mysql_error());
}
$db_selected = mysql_select_db(DB_NAME, $link);
if(!$db_selected)
 {
    die('Can\'t use'. DB_NAME . ':' . mysql_error());
 }

 $value1 = $_POST['Last Name'];
 $value2 = $_POST['Medical Information'];
 $value3 = $_POST['First Name'];
 $value4 = $_POST['Membership Type'];
 $value5 = $_POST['D.O.B'];
 $value6 = $_POST['Gender'];
 $value7 = $_POST['Membership Referral'];
 $value8 = $_POST['Trainer Required'];
 $value9 = $_POST['Membership Number'];
 $value10 = $_POST['Contract'];
 $value11 = $_POST['House Number/Street'];
 $value12 = $_POST['City'];
 $value13 = $_POST['County'];
 $value14 = $_POST['Postcode'];
 $value15 = $_POST['Tel'];
 $value16 = $_POST['E-Mail'];
 $value17 = $_POST['Bank Branch'];
 $value18 = $_POST['Card Holder Name'];
 $value19 = $_POST['Card Number'];
 $value20 = $_POST['Security Code'];

$sql ="INSERT INTO test(Last Name, Medical Information, First Name, Membership Type, D.O.B, Gender, Membership Referral, Trainer Required, Membership Number , Contract, House Number/Street, City, County, Postcode, Tel, E-Mail, Bank Branch, Card Holder Name, Card Number, Security Code) VALUES('$value1', '$value2', '$value3', '$value4','$value5','$value6','$value7','$value8','$value9','$value10','$value11','$value12','$value13','$value14','$value15', ,'$value16',,'$value17',,'$value18',,'$value19',,'$value20')";

if (!mysql_query($sql))
{
    die('Error:'.mysql_error());
}
mysql_close();
?>
0
Alex Anderson 17 Мар 2014 в 00:28

2 ответа

Лучший ответ

Используйте обратные галочки и общую проверку по вашему запросу:

$sql ="INSERT INTO test(Last Name, Medical Information, First Name, Membership Type, D.O.B, Gender,
 Membership Referral, Trainer Required, Membership Number , Contract, House Number/Street, City, 
 County, Postcode, Tel, E-Mail, Bank Branch, Card Holder Name, Card Number, Security Code) 
 VALUES('$value1', '$value2', '$value3','$value4','$value5','$value6','$value7','$value8',
 '$value9','$value10','$value11',
'$value12','$value13','$value14','$value15', ,'$value16',,'$value17',,'$value18',,'$value19',,'$value20')";

Между значением15 и значением16 у вас есть двойной , и так далее между значениями 17 и 18.

Очистите свой запрос.

0
Loïc 16 Мар 2014 в 20:32

Имена столбцов с пробелом должны быть обратными галочками, как

`Last Name` 

Поэтому в запросе на вставку вам нужно сделать обратную кавычку.

2
Abhik Chakraborty 16 Мар 2014 в 20:29