使用PHP无法正常插入数据库

时间:2014-03-16 20:28:15

标签: php sql

下面是我的php脚本,用于从我的表单输入数据到我的数据库。您可以在此处查看我的表单... http://studentnet.kingston.ac.uk/~k1202101/workshop2/CreateNewAccount.html

我在尝试提交表单时收到错误消息。我得到的错误信息是

'错误:您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以便在“姓名,医疗信息,名字,会员类型,D.O.B,性别,会员”第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();
?>

2 个答案:

答案 0 :(得分:2)

带空格的列名称需要以

的形式返回
`Last Name` 

因此,在插入查询中,您需要对它们进行反引号。

答案 1 :(得分:0)

使用返回标记,并在您的查询中进行全面检查:

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

在value15和value16之间,你有两倍,,依旧值在17和18之间。

清理您的查询。