У меня есть страница php, которая берет файл csv и загружает его в мою базу данных. Проблема, с которой я сталкиваюсь, заключается в том, что некоторые из полей имеют «$», которые мне не нужны. Есть ли способ удалить $ из только некоторых полей?
Структура данных
COLL_ID COCC_ID AGEDTOTAL PAYMENTTOTAL
5074 11110 $7.50 ($7.50)
мой запрос
$deleterecords = "TRUNCATE TABLE mytable"; //empty the table of its current records
mysql_query($deleterecords);
//Upload File
if (isset($_POST['submit'])) {
$i=0;
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
echo "<h2>Displaying contents:</h2>";
readfile($_FILES['filename']['tmp_name']);
}
//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if ($i>0){
$import="INSERT into mytable(COLL_ID, COCC_ID, AGEDTOTAL, PAYMENTTOTAL) values('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($import) or die(mysql_error());
}
$i++;
}
Попробуйте использовать 'strpos()' в сочетании с 'str_replace()' возможно? Возможно, вам нужно будет прочитать содержимое массива '$ data' в отдельные переменные перед вставкой в базу данных. – Maximus2012
Помимо предупреждения использовать MySQLi или PDO с подготовленными операторами/связыванием переменных, а не с устаревшим, устаревшим интерфейсом MySQL .... не можете ли вы просто сделать 'str_replace (['$', '', '', $ field) 'или' ltrim ($ field, '$') 'для этих элементов массива? –
Я использую это вместо ltrim ('$ data [2]', '$'), но получаю ошибку: Неверный счетчик параметров в вызове функции native 'ltrim' – user2168066