Reputation: 7
i've got a PHP lesson and i have to extract records from excel and add it to database but i have a problem that i can't add them because of
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''pracownicy' ('Id', 'Nazwisko i imię', 'Płeć', 'Dział', 'Wiek', ' at line 1 INSERT INTO 'pracownicy' ('Id', 'Nazwisko i imię', 'Płeć', 'Dział', 'Wiek', 'Miasto', 'Staż pracy') VALUES (DEFAULT, 'Czarnota Mariusz', 'M', 'DZ004', '31', 'KOŁOBRZEG', '8')
I don't know what is the problem, my query in code is all good and everything seems fine.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="main.js"></script>
</head>
<body>
<?php
$link = mysql_connect('localhost', 'root', 'root') or die("Not connected to database");
echo 'Połączono z MySQL... <br>';
$tabela = mysql_select_db('firma', $link) or die ('Not connected to table');
echo 'Połączono z bazą... <br>';
$dane = file('dane.csv');
$tmp = array();
for($i = 1; $i <= count($dane)-1; $i+=1) {
$schowek = $dane[$i];
$schowek = explode(';', $schowek);
for($j = 0; $j <= count($schowek)-1; $j+=1) {
$tmp[$j] = trim($schowek[$j]);
#echo "'" . $tmp[$j] . "'" . "<br>";
}
$sql = "INSERT INTO 'pracownicy' ('Id', 'Nazwisko i imię', 'Płeć', 'Dział', 'Wiek', 'Miasto', 'Staż pracy')
VALUES (DEFAULT, '$tmp[1]', '$tmp[2]', '$tmp[3]', '$tmp[4]', '$tmp[5]', '$tmp[6]')";
if(mysql_query($sql)) {
echo "Dodano rekord";
} else {
echo "ERROR: " . mysql_error($link) . '<br>' . $sql . "<br><br>";
}
}
?>
</body>
</html>
Database:
Upvotes: 0
Views: 140
Reputation: 400
try:
INSERT INTO pracownicy
('Nazwisko i imię', 'Płeć', 'Dział', 'Wiek', 'Miasto', 'Staż pracy')
VALUES
('Czarnota Mariusz', 'M', 'DZ004', '31', 'KOŁOBRZEG', '8');
Upvotes: 0
Reputation: 642
Remove single quotes from table name,columns name and remove id parameter also because its an Auto incremented id so no need to send that manually.
$sql = "INSERT INTO pracownicy (Nazwisko i imię,Płeć,Dział,Wiek,Miasto,Staż pracy)
VALUES ('$tmp[1]', '$tmp[2]', '$tmp[3]', '$tmp[4]', '$tmp[5]', '$tmp[6]')";
Upvotes: 0
Reputation: 674
Please see below query and replace with it your SQL query in PHP code.
$sql = "INSERT INTO pracownicy (Nazwisko i imię,Płeć,Dział,Wiek,Miasto,Staż pracy)
VALUES ('$tmp[1]', '$tmp[2]', '$tmp[3]', '$tmp[4]', '$tmp[5]', '$tmp[6]')";
and code used in PHPmyadmin remove variable put a value like this
$sql = "INSERT INTO pracownicy ('Nazwisko i imię','Płeć','Dział,Wiek','Miasto','Staż pracy')
VALUES ('tmp1', 'tmp2', 'tmp3', 'tmp4', 'tmp5', 'tmp6')";
Upvotes: 1