当我尝试使用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|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
所以这是一个电子商务网站,它将接收订单并获得付款或通过Paypal,或邮政服务或直接在实体店,您使用葡萄牙语的字段,所以我正在翻译和解释他们下面(有些可能是直接的,其他人可能不那么容易):
utilizador_id:( int )这是用户ID,它是users表的键。
data_encomenda(order_date)( datetime ):这是客户(用户)提交表单确认订单的日期时间。
data_vencimento( datetime ):这相当于截止日期,它是来自“我的客户”的请求
envio_id( int ):这是商店客户可以选择的货物(他可以要求发送到他的房子或在实体店挑选东西);
pagamento_id( int ):这是存储客户可以选择的付款之王的表格(贝宝,支票,邮政服务等),问题出在哪里,就是回音查询它回显表单中的1或其他数量的select元素(从数据库中获取值),但是当提交到数据库时,它被替换为0,并导致“外键约束失败”错误。我不明白为什么......
total(float):这将存储要在后端显示的订单总数
obs( varchar(500)):这是人们可以询问事物的观察区域(例如:“在盒子上画一只独角兽”)。
谢谢你的时间......编辑:
我忘记了数据类型,但已经添加了它们......
错误消息是外键约束失败但我删除了表pagamento上的关系现在它插入零这意味着(AFAIK)插入的数据无效,但如果它是回显整数为什么不是它接受它,某个地方执行mysql_query()时变量被“损坏”而且我不明白在哪里或为什么......
它是由表格中的$ _POST给出的,这可能很重要......
答案 0 :(得分: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());