mysql数据库插入和更新的两个问题!

 
更多

1   resource(43) of type (mysql result)

执行完sql与语句后  打印变量出现resource(43) of type (mysql result)的错误

这是使用var_dump()方法显示的结果resource(4) of type (mysql result) 是资源类型,不是数组二维数组(开始我也以为是数组)。


 这个返回值是没问题的~
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。

对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。

解决方法 :mysql_fetch_row(),mysql_fetch_array(),  mysql_fetch_assoc()
处理一下就ok.

2.
Duplicate entry '1461118730279255' for key 'version_id'类型错误

UPDATE legou_home_product_details a INNER JOIN legou_home_babyplay_info b ON a.co_product_id = b.product_id
                 SET a.shop_name = b.shop_name,
                a.product_name= b.product_name,     
                a.product_ad =b.business_tips,
                a.introduce = b.business_tips,
                a.version_id = b.version_id,
                a.vip_price = b.sale_price,
                a.market_price = b.sale_price,
                a.app_price = b.sale_price,
                a.mastermap = b.producct_image,
                a.typeid = b.typeid,
                a.type1_id = b.type1_id,
                a.type2_id = b.type2_id            
                ;

执行这段update语句会报错 Duplicate entry '1461118730279255' for key 'version_id' 

(1)原因是 a 表的 version_id字段为 UNIQUE KEY `version_id` (`version_id`) USING BTREE,是由于在拥有unique限制的字段上添加相同的值造成的 ,version_id的值是唯一不可重复的,解决方法是在sql语句加一个where 条件   where shop_id=4070 ,执行成功。

(2)原因是PRIMARY KEY (`product_id`),自增长 AUTO_INCREMENT 

修改自增列,让自增列从导入id最大值后面开始增长,这样就不会提示重复。
修改自增列:ALTER TABLE tbname AUTO_INCREMENT=xxx;】

打赏

本文固定链接: https://www.cxy163.net/archives/2805 | 绝缘体

该日志由 绝缘体.. 于 2018年09月22日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: mysql数据库插入和更新的两个问题! | 绝缘体
关键字: , , , ,

mysql数据库插入和更新的两个问题!:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter