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。”这一行为我提供了可能。我将用我提出的解决方案更新原始问题我认为我没有这样做的声誉,或者我不知道如何做:)