在PHP更新数据库中打开文本文件

时间:2012-10-30 12:55:30

标签: php mysql

好的,这将是我今天在这里发表的最后一篇文章,请你们提出有关为什么我的可怕代码dosnt工作的问题:)

我正在尝试运行查询以使用文本文档内容更新列的所有值。我的数据库如下所示:

Attribute_id | value
64 | Data.txt
109 | other data
64 | Data2.txt
109 | other data

如果您查看我的脚本,您可以看到我想要做的事情,现在我正在回答最终结果的查询:http://dev.central-pet-supplies.co.uk/test.php

它正在回归 更新mage_catalog_product_entity_text SET value ='Array'WHEREvalue ='13685.txt' 但是数组应该是文本文件内容

这是脚本:

<?php

mysql_connect ("localhost","cpsdev_mage1","********"); 
mysql_select_db ("cpsdev_mage1"); 

$sql = "select value from mage_catalog_product_entity_text WHERE Attribute_id = 64"; 
$result = mysql_query ($sql) or die($myQuery."<br/><br/>".mysql_error()); 

while($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
$lines = file('http://dev.central-pet-supplies.co.uk/media/import/' . $row['value']);
$query3 = "UPDATE mage_catalog_product_entity_text " . " SET value= '" . $lines .  "'         WHERE value = '" . $row['value'] . "'";
echo $query3 ."<br>";
}

?>

编辑:将文件更改为file_get_contents,现在正在运行。

2 个答案:

答案 0 :(得分:0)

file()读取整个文件,每行作为数组中的新条目。由于您不希望这样,您可以使用implode()通过添加

将行连接在一起
$lines = implode( "\n", $lines);

后:

$lines = file('http://dev.central-pet-supplies.co.uk/media/import/' . $row['value']);

或者,使用file_get_contents()代替file(),它将整个文件的内容作为字符串而不是数组返回:

$lines = file_get_contents( 'http://dev.central-pet-supplies.co.uk/media/import/' . $row['value']);

答案 1 :(得分:0)

你没有显示$lines来自哪里,但它是一个数组我假设文本文件中的行。使用类似file_get_contents的内容来将文本文件的内容改为单个字符串。