php – 从CSV文件更新Mysql表

嗨我试图从csv文件更新我的MysqL数据库中的表testprod. (我在这里找到了代码,并根据我的需要更新了它,差不多:))

它更新但十进制值被截断并且在(.)之后它丢失任何信息,例如400.25被减少到400

这是csv文件的示例

'Product_ID','Model','HighPic','ManuId','Model_Name','categories_id','categories_image','parent_id','sort_order','categories_name','categories_description','categories_keywords','Name','Image','Price','supplier','Weight','Stock','datetime'
2055332,,,,,,,,,,,,,,800.4,,,'1',
3916211,,,,,,,,,,,,,,444,,,'15',
12073922,,,,,,,,,,,,,,737.6215,,,'0',
4593772,,,,,,,,,,,,,,2822.4,,,'4',
1684786,,,,,,,,,,,,,,4333.2,,,'1',

这是PHP代码.

<?PHP

// set local variables
$connect = MysqL_connect("localhost","db","password") or die('Could    not connect: ' . MysqL_error());
$handle = fopen("dailyupdates.csv", "r");

// connect to MysqL and select database or exit 
MysqL_select_db("rapido_creloaded", $connect);

// loop content of csv file, using comma as delimiter
while (($data = fgetcsv($handle, 1000, ",")) !== false) {
$Product_ID = $data[0];
$price =  $data[14];
$stock = $data[17];



$query = 'SELECT Product_ID FROM testprod';
if (!$result = MysqL_query($query)) {
continue;
} 

if ($line = MysqL_fetch_array($result, MysqL_ASSOC)) {

// entry exists update
$query = "UPDATE testprod SET price ='$price' , stock = '$stock'
WHERE Product_ID = '$Product_ID'";


MysqL_query($query);
if (MysqL_affected_rows() <= 0) {

// no rows where affected by update query
}
} else {
// entry doesn't exist continue or insert...
}

MysqL_free_result($result);
}

fclose($handle);
MysqL_close($connect);

?>

解决方法:

将其数据类型设置为DECIMAL(20,5)或DOUBLE(20,5)

编辑

使用此查询

$query = "UPDATE testprod SET price ='$price' , stock = $stock
WHERE Product_ID = '$Product_ID'";

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...