PHP Query在数据库中有不同的结果

时间:2012-12-03 11:44:39

标签: php mysql

当我尝试使用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给出的,这可能很重要......

1 个答案:

答案 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());