簡體   English   中英

多個用戶在數據庫中保存項目

[英]Saving items by multiple users in database

做錯了什么? 這可能是這里所有專家的簡單解決方案,但我已經嘗試了所有方法,但我不知道我的錯誤在哪里?

我的想法是通過我的頁面將項目添加到我的數據庫,然后我可以將它們檢查為待辦事項列表或購買列表。 以及在未來,這將是購買/待辦事項列表 web 應用程序,以便全家人添加項目,並在一天結束時刷新頁面並獲取數據庫中的所有項目!

我的代碼如下:

TodoTobuy.php

<?php
include("includes/header.php");
include("./forms/fadd-items.php")
?>


<?php

try {

    //Tiedot kantaan
    
    /* var_dump($_POST); */

    $data1['items'] = $_POST['givenItems'];
    $data1['amount'] = $_POST['givenAmount'];


    $STH = $DBH->prepare("INSERT INTO todoORtobuy (items, amount, id) VALUES (:items, :amount, :id);");
    $STH->execute($data1);

    $data4['id'] = $data1['id'];
    $sql4 = "SELECT id FROM todoORtobuy where id =:id ORDER BY start DESC LIMIT 50";

    $kysely4 = $DBH->prepare($sql4);
    $kysely4->execute($data4);
    $tulos2 = $kysely4->fetch();

    $_SESSION["startDate"] = $tulos2[0];
    
} catch (PDOException $e) {
    echo "Yhteysvirhe: " . $e->getMessage();
    file_put_contents('log/DBErrors.txt', 'Connection: ' . $e->getMessage() . "\n", FILE_APPEND);
}

?>

我的表格

<fieldset>
<form method="post">
  <p>
  Items toDo \ toBuy:
  <br />  <input type="text" name="givenItems" placeholder="Write what toDO\toBuy..." maxlength="100"/>
  </p><p>
  Amount needed:
  <br />  <input type="text" name="givenAmount" placeholder="Write amount of what to buy..." maxlength="100"/>
  </p>

  <br />  <div>
            <input type="submit" name="submitUser" value="Add" id="send" class="sendbutton"/>  
          </div>
  </p>
</form>
</fieldset>

我得到的錯誤是:SQLSTATE[HY093]:參數編號無效:綁定變量的數量與標記的數量不匹配

我的意思是我有點理解錯誤,但找不到錯誤! 感謝您提前提供幫助

$data1['items'] = $_POST['givenItems'];
$data1['amount'] = $_POST['givenAmount'];


$STH = $DBH->prepare("INSERT INTO todoORtobuy (items, amount) VALUES (:items, :amount);");
$STH->execute($data1);

在您的代碼中,您為查詢使用了 3 個准備好的值,但您只傳遞了 2 個。

此外,在插入時不需要插入 id,它應該在你的表中設置為自動遞增,並且基本上會處理你插入的每條記錄。

它是如何工作的我評論了下半部分的那些,這是不需要的。 謝謝@pr1nc3

<?php
    
    try {
    
        //Tiedot kantaan
        
        /* var_dump($_POST); */

    $data1['items'] = $_POST['givenItems'];
    $data1['amount'] = $_POST['givenAmount'];
    
    
    $STH = $DBH->prepare("INSERT INTO todoORtobuy (items, amount) VALUES (:items, :amount);");
    $STH->execute($data1);

/*  $data1['id'] = $data1['id'];
    $sql4 = "SELECT id FROM todoORtobuy where id =:id ORDER BY start DESC LIMIT 50"; */

/*  $kysely4 = $DBH->prepare($sql4);
    $kysely4->execute($data1);
    $tulos2 = $kysely4->fetch();
 */
    
    
} catch (PDOException $e) {
    echo "Yhteysvirhe: " . $e->getMessage();
    file_put_contents('log/DBErrors.txt', 'Connection: ' . $e->getMessage() . "\n", FILE_APPEND);
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM