Php 使用CSV插入数据和/或更新数据库
Php 使用CSV插入数据和/或更新数据库,php,mysql,csv,Php,Mysql,Csv,所以我已经在这方面工作了一段时间,但我似乎不知道如何让它工作 我想更新数据库中产品的价格,如果产品id在那里,如果它不在那里,我想让它插入新的id和它的价格 使用下面的代码更新数据库,但是如果没有id,则不会插入任何内容 有什么不对劲的线索吗 非常感谢 吉姆 编辑 这对我很有用: $count = mysql_num_rows(mysql_query("SELECT id FROM products WHERE id = '$id'")); if ($count =
所以我已经在这方面工作了一段时间,但我似乎不知道如何让它工作 我想更新数据库中产品的价格,如果产品id在那里,如果它不在那里,我想让它插入新的id和它的价格 使用下面的代码更新数据库,但是如果没有id,则不会插入任何内容 有什么不对劲的线索吗 非常感谢
吉姆 编辑 这对我很有用:
$count = mysql_num_rows(mysql_query("SELECT id FROM products WHERE id = '$id'"));
if ($count == 1){
mysql_query("UPDATE products SET price='$price',ordprice='$ordprice' WHERE id='$id'");
}elseif($count == 0){
mysql_query("INSERT INTO products (id,price,ordprice) VALUES ('$id','$price','$ordprice')");
}
/编辑
乍一看,这一行:
if ($count = $id){
将始终等于true,因此请尝试:
if ($count == $id){
但是,我认为count将始终返回1(如果没有找到记录,则返回零),并且永远不会与csv中的id匹配
相反,使用mysql_fetch_assoc从数据库中提取记录,并将数据库中的id字段与csv中的id字段进行比较。乍一看,这一行:
if ($count = $id){
将始终等于true,因此请尝试:
if ($count == $id){
但是,我认为count将始终返回1(如果没有找到记录,则返回零),并且永远不会与csv中的id匹配
相反,使用mysql_fetch_assoc从数据库中提取记录,并将数据库中的id字段与csv中的id字段进行比较除了Hugh Downer所说的之外,您还面临另一个问题 您正在向$count分配由
mysql\u num\u rows
返回的值,该值似乎不是您想要的值
您正在将$count与$id进行比较,以确定它们是否匹配。如果我正确地假设数据库中的id
是唯一的,$count将永远不是0或1
所以试试这个:
if ($result = mysql_query("SELECT id FROM products WHERE id = $id")) {
$row = mysql_fetch_array($result);
$id2 = $row['id'];
}
else {
$id2 = NULL;
}
if ($id == $id2) {
// match found, do the insert magic
}
else {
// update here
}
除了休·唐纳所说的,你还面临着另一个问题 您正在向$count分配由
mysql\u num\u rows
返回的值,该值似乎不是您想要的值
您正在将$count与$id进行比较,以确定它们是否匹配。如果我正确地假设数据库中的id
是唯一的,$count将永远不是0或1
所以试试这个:
if ($result = mysql_query("SELECT id FROM products WHERE id = $id")) {
$row = mysql_fetch_array($result);
$id2 = $row['id'];
}
else {
$id2 = NULL;
}
if ($id == $id2) {
// match found, do the insert magic
}
else {
// update here
}
“然而,我认为count将始终返回1(如果没有找到记录,则返回零)”,这一行使我成为可能。我将用我提出的解决方案更新原始问题“然而,我认为count将始终返回1(如果没有找到记录,则返回零)”,这一行使我有可能。我将使用我提出的解决方案更新原始问题“您正在将$count与$id进行比较,以确定它们是否匹配。如果我正确地假设您在数据库中的id是唯一的,$count将永远不会超过0或1。”这一行为我提供了可能。我将用我提出的解决方案更新原始问题我认为我没有这样做的声誉,或者我不知道如何做:)“您正在比较$count和$id,以确定它们是否匹配。如果我正确地假设您在数据库中的id是唯一的,那么,$count将永远不会超过0或1。”这一行为我提供了可能。我将用我提出的解决方案更新原始问题我认为我没有这样做的声誉,或者我不知道如何做:)