0

below is my php script to input data into my database from my form. You can see my form here... http://studentnet.kingston.ac.uk/~k1202101/workshop2/CreateNewAccount.html

I get an error message when I try to submit the form. The error message I get is

'Error: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 'Name, Medical Information, First Name, Membership Type, D.O.B, Gender, Membershi' at line 1'

I have gone over my code but still cant see where I have gone wrong? Any help would be greatly appreciated.

<?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();
?>

2 Answers 2

2

Column names with space needs to back ticks as

`Last Name` 

So in the insert query you need to backtick them.

Sign up to request clarification or add additional context in comments.

Comments

0

use back ticks, and overall check at your query :

$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')";

between value15 and value16 you have double , and so on between value 17 and 18.

Clean your query.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.