我很难过。我正在尝试使用PHP和Mysql进行INSERT INTO。
这是SQL语句,它在PHPMyadmin中成功:
INSERT INTO purchase_orders VALUES (
DEFAULT,
'501',
'80999',
'149179',
'EB-0408898',
'1',
'Thompson Center Barrel Encore 26\" Stainless Steel Fluted 35 Whelen 4767',
'294.43',
'4767',
'UPS Ground',
'11.61',
'LA',
'P',
'1',
'264.99',
DEFAULT,
DEFAULT
)
这是运行SQL的PHP语句:
$sql = "INSERT INTO purchase_orders VALUES (
DEFAULT,
'".mysql_real_escape_string($po_num)."',
'".mysql_real_escape_string($order_id)."',
'".mysql_real_escape_string($product_id)."',
'".mysql_real_escape_string($product_code)."',
'".mysql_real_escape_string($amount)."',
'".mysql_real_escape_string($product)."',
'".mysql_real_escape_string($price)."',
'".mysql_real_escape_string($mfg_code)."',
'".mysql_real_escape_string($shipping_method)."',
'".mysql_real_escape_string($shipping_cost)."',
'".mysql_real_escape_string($s_state)."',
'".mysql_real_escape_string($status)."',
'".mysql_real_escape_string($dist_code)."',
'".mysql_real_escape_string($dist_cost)."',
DEFAULT,
DEFAULT)";
mysql_query($sql, $dbc);
echo mysql_errno($dbc) . ": " . mysql_error($dbc). "\n";
我完全困惑为什么insert语句不能与PHP一起使用。任何帮助将不胜感激。
谢谢,
Chris Edwards
我也试过这个SQL代码也有同样的结果......
INSERT INTO purchase_orders(po_num, order_id, product_id, product_code, amount, product, price, mfg_code, shipping_method, shipping_cost, s_state, status, dist_code, dist_cost) VALUES ('501','80999','149179','EB-0408898','1','Thompson Center Barrel Encore 26\" Stainless Steel Fluted 35 Whelen 4767','294.43','4767','UPS Ground','11.61','LA','P','1','264.99')
每个人的帮助都非常受欢迎,它给了我很好的想法,可以解决问题。我发现我试图在InnoDB表上使用mysql_query,但是没有用。
再次感谢!!!
答案 0 :(得分:0)
请勿在字段中使用DEFAULT
:
INSERT INTO purchase_orders (<colname1>,<colname2>,.....) VALUES ( '501','80999','149179','EB-0408898','1','Thompson Center Barrel Encore 26\" Stainless Steel Fluted 35 Whelen 4767','294.43','4767','UPS Ground','11.61','LA','P','1','264.99')
而是通过将插入值与列相关联来使用它。
答案 1 :(得分:0)
如果您尝试仅插入默认值,则可以将这些列的值设置为null。像这样:
INSERT INTO purchase_orders VALUES (null, '501','80999','149179','EB-0408898','1','Thompson Center Barrel Encore 26\" Stainless Steel Fluted 35 Whelen 4767','294.43','4767','UPS Ground','11.61','LA','P','1','264.99', null, null)
数据库会发现它需要将默认值放在您要求空的列中。
答案 2 :(得分:0)
您是否可以在数据库中插入任何内容?您的mysql_query($sql, $dbc);
部分代码是否有效?
除非是默认值,否则无需在表中插入默认值。当然,它很好地提醒了你的桌子结构,但是我还是把它排除在外。
否则,如果您喜欢VIPIN JAIN,建议一切都行之有效。定义您要插入值的列。如果列的数据类型是整数,则可以从查询中保留单引号。
仍然很奇怪,你没有得到任何错误信息。您确定数据库连接正常吗?
更新。试试这个。命名列并删除real_escape_string()
功能。如果这样可以添加它,或者在连接查询之前清除变量。如果这不起作用,请仔细检查值和表结构是否存在无效值。回应您在$sql
函数之前和之后尝试分配给real_escape_string()
的值。也许它已经做了一些奇特的事情。
$sql = "INSERT INTO `purchase_orders` (`column1`,`column2`,`column3`,`column4`,'";
$sql .= "`column5`,`column6`,`column7`,`column8`,`column9`,`column10`,";
$sql .= "`column11`,`column12`,`column13`,`column14`)";
$sql .= " VALUES ('{$po_num}','{$order_id}','{$product_id}',";
$sql .= "'{$product_code}','{$amount}','{$product}','{$price}',";
$sql .= "'{$mfg_code}','{$shipping_method}','{$shipping_cost}',";
$sql .= "'{$s_state}','{$status}','{$dist_code}','{$dist_cost}')";