mysql — ошибка загрузки данных в стек переполнения

Я хочу импортировать содержимое файла CSV в таблицу базы данных, я использую этот код, который работает в совершенстве при вставке в консоль phpmyadmin:

LOAD DATA LOCAL INFILE '/Applications/MAMP/htdocs/testApp/trips.csv' INTO TABLE trips FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS (type,startDate,endDate,steps,coordinates,distance)

Однако при использовании его в php-файле у меня возникает ошибка:

<?php

$host       = "localhost"; //Your database host server
$db         = "dbTest"; //Your database name
$user       = "root"; //Your database user
$pass       = "root"; //Your password
$connection = mysqli_connect($host, $user, $pass);

//Check to see if we can connect to the server
if (!$connection) {
die("Database server connection failed.");
die(mysqli_error($db));
} else {
//Attempt to select the database
$dbconnect = mysqli_select_db($connection, $db);
//Check to see if we could select the database
if (!$dbconnect) {
die("Unable to connect to the specified database!");
} else {
$sql = "LOAD DATA LOCAL INFILE '/Applications/MAMP/htdocs/testApp/trips.csv'
INTO TABLE trips
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\\n'
IGNORE 1 ROWS (type,startDate,endDate,steps,coordinates,distance)";

$result = mysql_query($sql, $connection);

if (mysql_affected_rows() == 1) {
$message = "The trip was successfully inserted!";
} else {
$message = "The trip insert failed";
$message .= mysql_error();
}

echo $message;
}
}
?>

=> The trip insert failed

Я уверен, что проблемы возникают из-за \ или любой другой персонаж, на которого я не могу нацелиться.
Спасибо за помощь .

-1

Решение

РЕДАКТИРОВАТЬ : Вы смешиваете два плагина MYSQL и MYSQLi в одном и том же скрипте, ниже я сбросил оставшуюся часть вашего кода с помощью плагина mysqli, потому что ваша верхняя часть использует mysqli …

N.BТы не можешь этого сделать. Выберите только один API.

    $result = mysqli_query($connection, $sql);

if (mysqli_affected_rows($connection) >= 1) {
$message = "The trip was successfully inserted!";
} else {
$message = "The trip insert failed";
$message .= mysqli_error($connection);
}
1

Другие решения

Вы перепутали плагины MySQL и MySQLi — вы пытаетесь соединиться с MySQLi, а затем выполнить запрос с MySQL. Вы не можете сделать это. Выбирать один API и использовать его последовательно.

Так:

mysql_query($sql)     ---> $connection->query($sql)
mysql_affected_rows() ---> $result->affected_rows()
mysql_error()         ---> $connection->error

В конечном счете, это не имеет ничего общего с LOAD DATA INFILE и ты должен был попробовать это с основным SELECT! И я рекомендую чтение документации для функций, которые вы используете.

2

Попробуйте переместить ваш файл trip.csv в datadir — Вы можете найти его с помощью этой команды: SELECT @ @datadir

-1
По вопросам рекламы [email protected]