【发布时间】:2014-03-28 17:35:13
【问题描述】:
下面是我正在使用的php代码
$file_handle = fopen("products.csv", "r");
$fname = "products.csv";
$fhandle = fopen($fname,"r");
$content = fread($fhandle,filesize($fname));
$server = "**\******,1433";
$connectionInfo = array( "Database"=>"******", "UID"=>"***", "PWD"=>"*******" );
$conn = sqlsrv_connect( $server, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
$itemco = $line_of_text[0];
$sql = "SELECT quantity FROM Item WHERE itemlookupcode = '$itemco' ";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
$icc = $row['quantity'];
$content = str_replace("$line_of_text[1]", "$icc", "$content");
}
}
$fhandle = fopen($fname,"w");
fwrite($fhandle,$content);
fclose($fhandle);
str_replace 在以下情况下不起作用:
$content = str_replace("$line_of_text[1]", "$icc", "$content");
【问题讨论】:
-
去掉
str_replace()内变量名的引号 -
@JohnConde 是对的,它采用文字字符“$icc”和“$content”
-
谢谢我之前试过了,但是没用。
-
你能添加更多细节吗,3 2 值示例。 $line_of_text、$icc 和 $content 中有什么。 str_replace 需要做替换,它会尽可能地做。
-
在这种情况下,引号是无关紧要的;它只是保留文字美元符号的单引号。然而,他们仍然不需要(也不应该)在那里。
标签: php sql-server csv str-replace