Synology-Forum.nl

Packages => Officiële Packages => PHPMyAdmin Package => Topic gestart door: a.m.j.janssen op 28 mei 2020, 10:57:17

Titel: Syntax2 PHP/MySQL
Bericht door: a.m.j.janssen op 28 mei 2020, 10:57:17
Hoi,
Wat is er mis met:

INSERT INTO TAB_FotosEnVideos (id, nummer, wie, wat, waar, waarom, pad, mapdatum, dbdatum, beschr) VALUES ('1', '1', 'wie', 'wat','WAAR','waarom','media/00001.jpg','2020-05-01','2020-05-02','besschr')

Unknown column '1' in 'field list'

id en nummer zijn INT
de datumvelden zijn DATE
de rest is VARCHAR
??
Titel: Re: Syntax2 PHP/MySQL
Bericht door: Hofstede op 28 mei 2020, 11:00:46
Zijn we ook al een SQL forum?  :lol:

Maar als id en nummer integers zijn dan moeten de values 1,1 zijn en niet ‘1’,’1’. Want 1 is een integer, ‘1’ is een string.
Titel: Re: Syntax2 PHP/MySQL
Bericht door: a.m.j.janssen op 28 mei 2020, 13:14:43
Hallo,
Ook dat heb ik al geprobeerd (dus 1,1,....) maar helaas.
PHPMyAdmin is een MySQL-tool, dus: ja.

Mvg
Titel: Re: Syntax2 PHP/MySQL
Bericht door: dvandonkelaar op 28 mei 2020, 13:46:46
Wanneer ik in een tijdelijke database een tabel met de naam 'TAB_FotosEnVideos' aan maak conform onderstaande
[attach=1]

En dan de volgende query uit voer
INSERT INTO TAB_FotosEnVideos (id, nummer, wie, wat, waar, waarom, pad, mapdatum, dbdatum, beschr) VALUES ('1', '1', 'wie', 'wat','WAAR','waarom','media/00001.jpg','2020-05-01','2020-05-02','besschr')
Dan wordt deze gewoon toegevoegd.
Misschien zit er een verkeerde instelling in een key, kolom o.i.d.?
Titel: Re: Syntax2 PHP/MySQL
Bericht door: a.m.j.janssen op 28 mei 2020, 14:37:08
Hallo dvandonkelaar,
Dank voor je reactie.
Als de query via PHPMyAdmin (SQL) wordt uitgevoerd, wordt de data inderdaad in de database geimporteerd.
Maar ik krijg foutmeldingen als ik de query vanuit PHP uitvoer:

$filename="media/test3.csv";
$ext=substr($filename,strrpos($filename,"."),(strlen($filename)-strrpos($filename,".")));
   
//check,file moet extensie csv hebben.
if ($ext==".csv")
   {
   $file = fopen($filename, "r");
        while (($emapData = fgetcsv($file, 1000, ",")) !== FALSE)
        {
      $num = count($emapData);
           //echo "<p> $num fields in line $row: <br /></p>\n";
           $row++;
           for ($c=0; $c < $num; $c++) {
               //echo $emapData[$c] . "<br />\n";
           }
      
           $sql = "INSERT INTO TAB_FotosEnVideos (id, nummer, wie, wat, waar, waarom, pad, mapdatum, dbdatum, beschr)
           VALUES ('$emapData[0]', '$emapData[1]', '$emapData[2]', '$emapData[3]','$emapData[4]','$emapData[5]','$emapData[6]','$emapData[7]','$emapData[8]','$emapData[9]','$emapData[10]' )";
           
            echo "<br>sql=".$sql;
           
            $query=mysqli_query($dbcnx, $sql);
            if (!$query)  { die('<br>De volgende fout is opgetreden bij het schrijven naar tabel TAB_FotosEnVideos: ' . mysqli_error($dbcnx)); }
           
 
      }
      
      fclose($file);
        echo "<br>". $filename . " is correct in de database geimporteerd";
   
   } else {
       echo "<br>Kies een .csv-file aub";
   }
Titel: Re: Syntax2 PHP/MySQL
Bericht door: dvandonkelaar op 28 mei 2020, 14:53:21
$sql = "INSERT INTO TAB_FotosEnVideos (id, nummer, wie, wat, waar, waarom, pad, mapdatum, dbdatum, beschr)
           VALUES ('$emapData[0]', '$emapData[1]', '$emapData[2]', '$emapData[3]','$emapData[4]','$emapData[5]','$emapData[6]','$emapData[7]','$emapData[8]','$emapData[9]','$emapData[10]' )";

PHP is niet hetgeen waar ik het meeste kennis van heb, maar de insert geeft hier 10 kolommen en de values 11. Dat past sowieso niet.
Misschien kun je de eerste paar queries weergeven op je webpagina om deze zo te troubleshooten?
Titel: Re: Syntax2 PHP/MySQL
Bericht door: a.m.j.janssen op 28 mei 2020, 16:07:59
Hoi,

Citaat: "The ID column is an auto-increment field and will be generated automatically when a new record is inserted into the table."
Maw het eerste veld moet niet worden ingevuld bij de INSERT omdat het een auto-increment veld is.

Daarmee is het probleempje opgelost. Dank voor het meedenken.
Mvg