当我尝试使用 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 给出...