-1

さて、これが今日の私の最後の投稿になります。私のひどいコードが機能しない理由について、皆さんにたくさんの質問をしました:)

クエリを実行して、列のすべての値をテキストドキュメントの内容で更新しようとしています。私のデータベースは次のようになります。

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 mage_catalog_product_entity_text SET value ='Array' WHERE value = '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に変更し、現在機能しています。

4

2 に答える 2

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']);
于 2012-10-30T13:01:15.330 に答える
0

どこ$linesから来たのかはわかりませんが、テキストファイルの行を想定した配列です。代わりに、のようなものを使用file_get_contentsして、テキストファイルの内容を単一の文字列として取得します。

于 2012-10-30T13:01:55.807 に答える