Mysql&需要Php帮助

时间:2014-02-12 07:26:20

标签: php mysql function

所以我使用的是聪明的模板,我在数据库中添加了一个新的列名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"]."','".$_P‌​OST["zip"]."','".$_POST["state"]."','".$_POST["city"]."','".$_POST["address"]."',‌​'".$_POST["phone"]."');") or die (db_error()); 

3 个答案:

答案 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"]."',
    '".$_P‌​OST["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"]."',
    '".$_P‌​OST["zip"]."',
    '".$_POST["state"]."',
    '".$_POST["city"]."',
    '".$_POST["address"]."',‌
    ​'".$_POST["phone"]."'
)"

在将数据放入查询之前,还要确保所有POST数据都可用,最重要的是使用mysql_real_escape_string清理数据或使用PDO

答案 2 :(得分:0)

这或多或少看起来像名字字段问题。与数据库或查询无关。检查发出请求的表单,并确保表单中有名称为“trackorderid”的字段。另外,在编写插入查询之前使用print_r($ _ POST),以确保$ _POST ['trackorderid']不为空。