所以我使用的是聪明的模板,我在数据库中添加了一个新的列名track_id,但是它给了我一个错误“注意:C:\ xampp \ htdocs \ zeno \ includes \ order_place中的未定义索引:trackorderid。第27行的PHP“但我已经定义了索引?”
db_query("insert into ".ORDERS_TABLE." (order_time,track_id, cust_firstname, cust_lastname, cust_email, cust_country, cust_zip, cust_state, cust_city, cust_address, cust_phone) values ('".get_current_time()."',,'".$_POST["trackorderid"]."','".$_POST["first_name"]."','".$_POST["last_name"]."','".$_POST["email"]."','".$_POST["country"]."','".$_POST["zip"]."','".$_POST["state"]."','".$_POST["city"]."','".$_POST["address"]."','".$_POST["phone"]."');") or die (db_error());
答案 0 :(得分:0)
首先,这不是一个错误它只是一个通知php通知你在$ _POST超全局数组中不存在trackorderid但你仍然试图访问它。请检查将数据发布到此查询的表单,因为它看起来在表单元素的名称字段中存在语法错误。
也与您的问题无关,但另一个建议始终使用
mysql_real_escape_string($_POST["trackorderid"])
在mysql查询中使用它时转义数据,否则你的代码将对mysql注入攻击开放。
答案 1 :(得分:0)
您遇到查询错误
"insert into ".ORDERS_TABLE."
(
order_time,
track_id,
cust_firstname,
cust_lastname,
cust_email,
cust_country,
cust_zip,
cust_state,
cust_city,
cust_address,
cust_phone
)
values
(
'".get_current_time()."',
,'".$_POST["trackorderid"]."',
'".$_POST["first_name"]."',
'".$_POST["last_name"]."',
'".$_POST["email"]."',
'".$_POST["country"]."',
'".$_POST["zip"]."',
'".$_POST["state"]."',
'".$_POST["city"]."',
'".$_POST["address"]."',
'".$_POST["phone"]."'
)"
'".get_current_time()."',,'".$_POST["trackorderid"]."',
这里有2个逗号,正确的查询是
"insert into ".ORDERS_TABLE."
(
order_time,
track_id,
cust_firstname,
cust_lastname,
cust_email,
cust_country,
cust_zip,
cust_state,
cust_city,
cust_address,
cust_phone
)
values
(
'".get_current_time()."',
'".$_POST["trackorderid"]."',
'".$_POST["first_name"]."',
'".$_POST["last_name"]."',
'".$_POST["email"]."',
'".$_POST["country"]."',
'".$_POST["zip"]."',
'".$_POST["state"]."',
'".$_POST["city"]."',
'".$_POST["address"]."',
'".$_POST["phone"]."'
)"
在将数据放入查询之前,还要确保所有POST数据都可用,最重要的是使用mysql_real_escape_string清理数据或使用PDO
答案 2 :(得分:0)
这或多或少看起来像名字字段问题。与数据库或查询无关。检查发出请求的表单,并确保表单中有名称为“trackorderid”的字段。另外,在编写插入查询之前使用print_r($ _ POST),以确保$ _POST ['trackorderid']不为空。