0

当我尝试使用 PHP 向我的数据库插入数据时,回显查询,它回显可以插入的查询(我直接使用 PHPMyadmin 插入数据没有问题)。但它仍然给我一些使用 php 的错误,所以我删除了数据库上的关系并再次尝试,然后我看到了问题所在,但我不明白是什么原因造成的。

问题

我的代码:

echo "<b>mysql_query(\"INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', '$pagamento_id','$total','$obs')\");</b>";

    mysql_query("INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', 'pagamento_id','$total','$obs')") or die(mysql_error());

我的回声:

"mysql_query("INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('1','2012-12-03 11:13:08','2013-01-03 11:13 :08', '1', '1','2400','Observações')");"

我插入的内容:

+++++++++++++++
+EncomendaCab +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|utilizador_id |   data_encomenda  |  data_vencimento  | envio_id | pagamento_id | total | obs |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|      1       |2012-12-03 11:13:08|2013-01-03 11:13:08|    1     |       1      |  2400 |Observações|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

所以这是一个电子商务网站,它将接收订单并获得付款或通过贝宝,或邮政服务或直接在实体店,你是葡萄牙语的字段,所以我在下面翻译和解释它们(有些可能是直截了当的,有些可能不是那么容易):

utilizador_id:( int )这是用户ID,它是用户表的键。

data_encomenda (order_date)( datetime ):这是客户(用户)提交确认订单的表单时的日期时间。

data_vencimento( datetime ):这相当于到期日期,它是来自“我的客户”的请求

envio_id( int ):这是店家客户可以选择的发货方式(可以要求寄到自己家,也可以到实体店取货);

pagamento_id( int ):这是存储客户可以选择的付款之王(paypal、支票、邮政服务等)的表,也是问题所在,在回显查询中,它回显了 1 或其他数字选择表单中的元素(女巫正在从数据库中获取值),但是当提交到数据库时它被替换为 0,并导致“外键约束失败”错误。我不明白为什么...

total(float):这存储要在后端显示的订单总数,

obs( varchar(500) ):这是人们可以要求的观察字段(例如:“在盒子上画一只独角兽”)。

感谢您的时间...

编辑:

我忘记了数据类型,但已经添加了它们......

错误消息是外键约束失败,但我删除了表 pagamento 上的关系,现在它插入一个零,这意味着(AFAIK)插入的数据无效,但如果它正在回显一个整数,为什么它不接受它,执行 mysql_query() 时的某个地方,该变量被“损坏”,我不明白在哪里或为什么......

它由可能很重要的表单中的 $_POST 给出...

4

1 回答 1

2
mysql_query("INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', 'pagamento_id','$total','$obs')") or die(mysql_error());

pagamento_id 是问题,因为它不是 php 变量。

mysql_query("INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', '$pagamento_id','$total','$obs')") or die(mysql_error());
于 2012-12-03T12:01:13.123 回答