mySQL INSERT unter BashScript klappt einfach nicht ??

#1
Hallo wusste jetzt nicht ob ich den Beitrag unter Bash oder SQL posten soll hoffe das es hier richtig ist.

ich habe eine CSV datei, mit Hilfe eines Bash-Scripts eingelessen wird, und dann per mySQL INSERT INTO befehl in die datenbank geschrieben werden soll, aber leider bekomme ich keinen funktionierenden SQL QUERY hin bzw. erhalte immer nur die Fehlermeldung ERROR 1064 ???
hier mal der CODE

SQL:
#!/bin/bash
PWD=`pwd`
while IFS="|" read linkhash link text1 text2 datum rubid
    do
    echo "Daten gelanden"
    #echo $linkhash
    #echo $link
    #echo $text1
    #echo $test2
    #echo $datum
    #echo $rubid

mysql -u root --password="123456789" << EOF
use joomla_db;
INSERT INTO `xd5vq_content` (`id`, `asset_id`, `title`, `linkhash`, `alias`, `introtext`, `fulltext`, `state`, `catid`, `created`, `created_by`, `created_by_alias`, `modified`, `modified_by`, `checked_out`, `checked_out_time`, `publish_up`, `publish_down`, `images`, `urls`, `attribs`, `version`, `ordering`, `metakey`, `metadesc`, `access`, `hits`, `metadata`, `featured`, `language`, `xreference`) VALUES (NULL, '99', 'Test', '$linkhash', '', 'Test', '', '1', '$rubid', '2017-09-08 00:00:00', '0', '', '2017-09-08 00:00:00', '0', '0', '2017-09-08 00:00:00', '2017-09-08 00:00:00', '2017-09-08 00:00:00', '', 'URL', '', '1', '0', '', '', '0', '0', '', '0', '*', '')
EOF
done < $PWD/data/temp_sql.csv
habe den QUERY auch schon ohne die anführungsyeichen geschrieben leider ohne erfolg ???

SQL:
INSERT INTO `xd5vq_content` (id,asset_id, title, linkhash, alias, introtext, fulltext, state, catid, created, created_by, created_by_alias, modified, modified_by, checked_out, checked_out_time, publish_up, publish_down, images, urls, attribs, version, ordering, metakey, metadesc, access, hits, metadata, featured, language, xreference) VALUES ('NULL', '99', '$text1', '$linkhash', '', '$test2', '', '1', '$rubid', '2017-09-08 00:00:00', '0', '', '2017-09-08 00:00:00', '0', '0', '2017-09-08 00:00:00', '2017-09-08 00:00:00', '2017-09-08 00:00:00', '', '$link', '', '1', '0', '', '', '0', '0', '', '0', '*', '');
Kann es vielleicht an der Länge liegen ?? das Merkwürdige ist das der erste Query in phpmysql funktioniert??

zur info ich nutze die
MySQL Server version: 5.7.19
 

lano

Well-Known Member
c-b Experte
#2
Bash:
#!/bin/bash

PWD=`pwd`
while IFS="|" READ linkhash link text1 text2 datum rubid
do
    echo "INSERT INTO xd5vq_content (id,asset_id,title,linkhash,alias,introtext,fulltext,state,catid,created,created_by,created_by_alias,modified,modified_by,checked_out,checked_out_time,publish_up,publish_down,images,urls,attribs,version,ordering,metakey,metadesc,access,hits,metadata,featured,language,xreference) VALUES (NULL, '99', 'Test', '$linkhash', '', 'Test', '', '1', '$rubid', '2017-09-08 00:00:00', '0', '', '2017-09-08 00:00:00', '0', '0', '2017-09-08 00:00:00', '2017-09-08 00:00:00', '2017-09-08 00:00:00', '', 'URL', '', '1', '0', '', '', '0', '0', '', '0', '*', '');"
done < $PWD/DATA/temp_sql.csv | mysql -u root -p "123456789" joomla_db;
[/php]
 
#3
Hallo Iano,
habe es jetzt schon hinbekommen habe das ganze über eine Kurzschreibweise gemacht,

SQL:
INSERT INTO xd5vq_content VALUES (NULL, '121', '$text1', '$linkhash', '', '$text2', '', '1', '$rubid', '$datum', '0', '', '$datum', '43', '0', '$datum', '$datum', '2020-03-05 17:16:10', '', '$link', '', '1', NULL, '', '', '1', NULL, '', '0', '*', '');
werde dein vorschlage mal bei Zeiten testen, danke aber fuer deine Hilfe
 
Oben