2012-10-30 102 views
-1

好吧,这将是我最后一次张贴在这里今天,都问你们enougth为什么我可怕的代码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

它返回 UPDATE SET mage_catalog_product_entity_text值= '阵列' WHERE值= '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,现在正在工作。

+0

请注意:请注意'mysql_xx()'函数已被视为已过时并且已被弃用。如果可能的话,你应该避免使用它们。 PHP手册建议切换到'mysqli_xx()'函数或PDO库。在这里看到更多的信息:http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-function-in-php – SDC

回答

0

file()在整行文件中读入每一行作为数组中的新条目。既然你不希望出现这种情况,你可以通过把

$lines = implode("\n", $lines); 

后结合在一起使用implode()行:

$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']); 
0

你不显示在那里$lines来自但是它的一个数组我假设文本文件中的行。请使用类似file_get_contents的内容来将文本文件的内容作为单个字符串来代替。