I have semicolon-separated .dat file and I want to read that file and store its contents into a database.
Structure of .dat file:
You have two solutions :
.dat file
Here is a portion of code that could serve as a starting point, if you choose the second solution :
if (in_numeric($data[0]) && is_numeric($data[1]) && is_numeric($data[2])) {
$sql_qry = "INSERT INTO DatTable (DF_PARTY_ID,DF_PARTY_CODE,DF_CONNECTION_ID)
VALUES ('$data[0]','$data[1]','$data[2]')";
$stmt = $this->connection->prepare($sql_qry);
$stmt->execute();
$this->checkForErrors($stmt);
}
Also, note that you are using prepare and execute, which seem to indicate you are trying to use prepared statements.
When using prepared statements, you should not do like you are doing ; you should :
You should not :
Which means your code should look a bit like this (not tested, so you might have to change a few things) :
// First, prepare the statement, using placeholders
$query = "INSERT INTO DatTable (DF_PARTY_ID,DF_PARTY_CODE,DF_CONNECTION_ID)
VALUES (:party_id, :party_code, :connection_id)";
$stmt = $this->connection->prepare($query);
if (in_numeric($data[0]) && is_numeric($data[1]) && is_numeric($data[2])) {
// Then, for each line : bind the parameters
$stmt->bindValue(':party_id', $data[0], PDO::PARAM_INT);
$stmt->bindValue(':party_code', $data[1], PDO::PARAM_INT);
$stmt->bindValue(':connection_id', $data[2], PDO::PARAM_INT);
// And execute the statement
$stmt->execute();
$this->checkForErrors($stmt);
}