Jump to content
Sign in to follow this  
itpawel

Gdzie tkwi błąd?

Recommended Posts

for ($i=0; $i<2; $i++)
{

\\ tu linia 23
$sql = $db -> Prepare('INSERT INTO zapo VALUES(:id,:nr,:date,:title,:name[$i],:comments)');
\\

                $sql -> bindParam(':id', $_SESSION['user_id'], PDO::PARAM_STR);
                $sql -> bindParam(':nr', $_POST["nr"], PDO::PARAM_STR);
                $sql -> bindParam(':date', $_POST["date"], PDO::PARAM_STR);
                $sql -> bindParam(':title', $_POST["title"], PDO::PARAM_STR);
                $sql -> bindParam(":name[$i]", $_POST["name"][$i], PDO::PARAM_STR);
                $sql -> bindParam(':comments', $_POST["comments"], PDO::PARAM_STR);
$sql -> execute();
}

Wywala błąd wiecie gdzie jest błąd?
<b>Fatal error</b>:  Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 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 '[$i],?,?)' at line 1 in C:\xampp\htdocs\name.php:23
Stack trace:
#0 C:\xampp\htdocs\name.php(23): PDO-&gt;prepare('INSERT INTO zap...')


darmowe programy - inspiracja dobrymi rozwiązaniami informatycznymi - freeware.

Share this post


Link to post
Share on other sites

HTTP 200 usługi IT - Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL
- Full Stack Developer - :chatownik:

 

Share this post


Link to post
Share on other sites

Chciałem osiągnąć tablicę:

id        nr        date        title        name        coments
1        1        22.02.20    Ryby         nazwa1        komentarz    
1        1        22.02.20    Ryby        nazwa1        komentarz
1        1        22.02.20    Ryby         nazwa1        komentarz    

2        2        23.02.20    Ssaki        nazwa2        komentarz2
2        2        23.02.20    Ssaki        nazwa2        komentarz2
2        2        23.02.20    Ssaki        nazwa2        komentarz2    
....   


darmowe programy - inspiracja dobrymi rozwiązaniami informatycznymi - freeware.

Share this post


Link to post
Share on other sites

Zamień

$sql = $db -> Prepare('INSERT INTO zapo VALUES(:id,:nr,:date,:title,:name[$i],:comments)');

na

$sql = $db -> Prepare('INSERT INTO zapo VALUES(:id,:nr,:date,:title,:name,:comments)');

I zamiast linii:

$sql -> bindParam(":name[$i]", $_POST["name"][$i], PDO::PARAM_STR);

Dajesz:

$sql -> bindParam(":name", $_POST["name"][$i], PDO::PARAM_STR);

 

I  w tym przypadku zamiast bindParam dałbym bindValue wszędzie.


📊 Statystyki Ahrefs i Majestic: https://mj.i4a.pl  📉 Wizytówki NAP TANIO 🈺️  🔗🔗 SWL LinkTak.pl 🔗🔗

Share this post


Link to post
Share on other sites

W Twoim wypadku możesz żywcem wstawić z tablicy

 $sql = "INSERT INTO users (name, surname, sex) VALUES (?,?,?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$name, $surname, $sex]);

https://phpdelusions.net/pdo_examples/insert

LUB > INSERTing multiple rows


HTTP 200 usługi IT - Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL
- Full Stack Developer - :chatownik:

 

Share this post


Link to post
Share on other sites

Wyświetla błąd: Insert value list does not match column list.

$sql = $db -> Prepare('INSERT INTO zapo VALUES(:id,:nr,:date,:title,:name,:comments)');

Chciałbym aby w mysql było 8 pozycji: id,nr,date,title,name0,name1,name2,comments


darmowe programy - inspiracja dobrymi rozwiązaniami informatycznymi - freeware.

Share this post


Link to post
Share on other sites

Litości ! Przecież masz jasny komunikat co jest tak  "Insert value list does not match column list. "


HTTP 200 usługi IT - Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL
- Full Stack Developer - :chatownik:

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use Privacy Policy