gpt4 book ai didi

mysql - 如何从 Mysql_fetch_array 获取单行/数据?

转载 作者:行者123 更新时间:2023-11-29 08:55:57 25 4
gpt4 key购买 nike

我正在使用 fgetcsv() 通过 PHP 读取 .csv 文件。现在我可以从 .csv 文件中获取我的意思是读取数据。然后我需要用我的获取结果检查 SKU 列,因此必须执行插入或更新。假设 SKU 已经存在,那么我必须更新表中的行,否则我需要插入新记录。我写了以下代码...请检查并告诉我哪里做错了-:

<?php
$row = 1;
if (($handle = fopen("localhost/data/htdocs/magento/var/import/Price.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 8000, ",")) !== FALSE)
{
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
for ($c=0; $c < $num; $c++)
{
$temp = $data;
$string = implode(";", $temp);
}
$pieces = explode(";", $string);
$col1 = $pieces[0];
$col2 = $pieces[1];
$col3 = $pieces[2];
$col4 = $pieces[3];

$db_name = "magento";
$con = mysql_connect("localhost", "magento", "password");
If (!$con)
{
die('Could not connect: ' . mysql_error());
mysql_close($con);
}
$seldb = mysql_select_db($db_name, $con);

$query_fetch = "SELECT `sku` from `imoprt_prices`";
$result_fetch = mysql_query($query_fetch);
$num_rows = mysql_num_rows($result_fetch);

for($i = 0; $i < $num_rows; $i++)
{
$value = mysql_result($result_fetch, i, 'sku');
if(strcmp('".$value."', '".$col2."') == 0)
{
$flag = 1;
break;
}
else
{
$flag = 0;
break;
}
}
if($flag == 1)
{
$query_upadte = "(UPDATE imoprt_prices SET customer_id= '".$col1."', sku ='".$col2."', price= '".$col3."', website= '".$col4."'
)";
mysql_query($query_upadte);
$row++;
}
if($flag == 0)
{
mysql_query("INSERT INTO `imoprt_prices`(`customer_id`,`sku`,`price`,`website`) VALUES('".$col1."','".$col2."','".$col3."','".$col4."')");
$row++;
}

}
}
?>

最佳答案

如果您的 imoprt_prices 表中有实际的 UNIQUE 索引,则可以使用 ON DUPLICATE KEY UPDATE语法并稍微简化您的代码,类似于; (注意,无法测试,因此请参阅伪代码)

$db_name = "magento";
$con = mysql_connect("localhost", "magento", "password") or die(mysql_error());
$seldb = mysql_select_db($db_name, $con);

if (($handle = fopen("localhost/data/htdocs/magento/var/import/Price.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 8000, ",")) !== FALSE)
{
$col1 = $pieces[0];
$col2 = $pieces[1];
$col3 = $pieces[2];
$col4 = $pieces[3];

$query_upadte = "INSERT INTO imoprt_prices (customer_id, sku, price, website) ".
"VALUES('".$col1."','".$col2."','".$col3."','".$col4."') ".
"ON DUPLICATE KEY UPDATE customer_id='".$col1."', price='".$col3.
"',website='".$col4."'";
mysql_query($query_upadte);
}
}

您可能还需要 mysql_real_escape_string()或者使用参数化查询来确保插入的值中没有 ' 。像这样构建 sql 字符串总是存在危险。

简单演示 here .

关于mysql - 如何从 Mysql_fetch_array 获取单行/数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9988535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com