2016-01-14 6 views
-2

В последнее время я работал на веб-сайте базы данных, где бы вы ни были.Экспорт MySQL в CSV php

Я пытаюсь сделать кнопку, чтобы загрузить таблицу MySQL в и CSV файлов, но я получаю эту ошибку в CSV файл str_replace() expects at least 3 parameters, 2 given in C:\xampp\htdocs\leif\export.php on line 37

Код кнопки:

<form action="export.php" method="post" name="export_excel"> 

      <div class="control-group"> 
       <div class="controls"> 
<button type="submit" id="export" name="export" class="btn btn-primary button-loading" data-loading-text="Laster...">Til CSV</button> 
       </div> 
      </div> 
     </form> 

здесь файл, создает CSV:

<?php 


mysql_connect("localhost", "xxxxx", "xxxxx") or die (mysql_error()); 

mysql_select_db("dom_oversikt") or die(mysql_error()); 

//header to give the order to the browser 
header('Content-Type: text/csv'); 
header('Content-Disposition: attachment;filename=domener.csv'); 

//select table to export the data 
$select_table=mysql_query('select * from server1'); 
$rows = mysql_fetch_assoc($select_table); 

if ($rows) 
{ 
getcsv(array_keys($rows)); 
} 
while($rows) 
{ 
getcsv($rows); 
$rows = mysql_fetch_assoc($select_table); 
} 

// get total number of fields present in the database 
function getcsv($no_of_field_names) 
{ 
$separate = ''; 


// do the action for all field names as field name 
foreach ($no_of_field_names as $field_name) 
{ 
if (preg_match('/\\r|\\n|,|"/', $field_name)) 
{ 
$field_name = '' . str_replace('', $field_name) . ''; 
} 
echo $separate . $field_name; 

//sepearte with the comma 
$separate = ','; 
} 

//make new row and line 
echo "\r\n"; 
} 
?> 
+1

Вместо того, чтобы возиться писать свой собственный доморощенный CSV писатель, который сломается в первый раз, у вас есть запятая в любой из данных, которые вы» re exporting, почему бы не прочитать о встроенной функции PHP [fputcsv()] (http://php.net/manual/en/functioncsf.php) –

ответ

0

PHP str_replace() имеет 3 обязательные параметры, пожалуйста, проверьте этот

str_replace ($search, $replace, $subject); 

Справочную визита PHP Manual

0

Вам нужно поставить 3 параметра в str_replace!

str_replace("String to search","String to replace with","Source String"); 

http://php.net/manual/en/function.str-replace.php

Кроме того, пожалуйста, не используйте mysql_ * функция, он удален Теперь вы должны использовать mysqli_ * или PDO вместо

+0

Это не устарело, оно полностью удалено. – Tom

0

Посмотрите на линию 37 в ваш файл. Вам не хватает третьего параметра, который является строкой, на которой вы хотите заменить символ. Функция

str_replace('', $field_name); 
0

Вы упускаете 3-й параметр в str_replace вызова. В зависимости от вас вы должны сначала поймать результат регулярного выражения и использовать preg_match_all вместо preg_match, чтобы заменить ВСЕ вхождения.

С preg_replace вы можете заменить все в 1 строке кода:

$field_name = preg_replace('/(\\r|\\n|,|")/','', $field_name);