簡體   English   中英

將 MYSQL PHP 插入數據庫

[英]Insert MYSQL PHP into database

我正在嘗試向我的數據庫中插入一些數據,但它只會插入一個唯一的 ID 和用戶 ID。 其余的屬性不會跟隨。 有什么建議?

插入圖像: 在此處輸入圖片說明

<?php

if(isset($_POST['project']))
{
    // Escape user inputs for security
    $stripped = mysql_real_escape_string($_GET['id']);
    $title = mysqli_real_escape_string($_POST['title']);
    $about = mysqli_real_escape_string($_POST['about']);
    $code = mysqli_real_escape_string($_POST['code']);

    mysql_query("INSERT INTO cms_prosjekt (userid, title, about, code) VALUES 
        ('".$_SESSION['user']['id']."', '".$title."', '".$about."', '".$code."')") or die(mysql_error());

}
?>

HTML

<form action="" method="post">

    <input type="text" class="form-control" type="text" name="title" id="title" placeholder="Fullt navn" style="margin-bottom:10px">
    <input type="text" class="form-control" type="text" name="about" id="about" placeholder="Kode bedrift" style="margin-bottom:10px">
    <input type="text" class="form-control" type="text" name="code" id="code" placeholder="Passord" style="margin-bottom:10px">

    <button type="submit" name="project" class="button" class="btn btn-success" style="margin-bottom:10px;">Register prosjekt nå</button>

</form>

您需要提供 $link 參數,這是您正確轉義您的值的連接。

mysqli_real_escape_string ( mysqli $link , string $escapestr )

看到您的代碼並且它只輸入一個值,這告訴我您正在使用mysql_ API 來連接,並且您將它們與mysqli_real_escape_string()混合,並且需要一個數據庫連接作為第一個參數。

由於$stripped = mysql_real_escape_string($_GET['id']); 看到您的屏幕截圖后,所有內容都已輸入到數據庫中。

這些不同的 API 不會混合使用。 從連接到查詢,您需要使用相同的方法。

  • 在您的情況下,那將是mysql_* - mysql_real_escape_string()

我建議您立即開始使用准備好的語句。

注意:使用mysql_real_escape_string()並不能完全防止 SQL 注入。 閱讀有關該主題的以下問答;


腳注:

MySQL_ API 已從 PHP 7.0 中刪除。 如果您的服務器最終升級到它,您將無法再使用現有代碼。

是時候切換到使用 MySQLi_ 或 PDO API 並使用准備好的語句了。

參考:

您還應該檢查任何空字段。 isset()您的提交按鈕使用isset()是不夠的。

如果您的網站已上線或即將上線,則有人可能會輸入空值並可能觸發錯誤或在您的數據庫中插入空值,我相信您不會對此表示贊賞。

參考:

你已經使用了 mysqli 和 mysql 它應該是他們中的任何一個。

if (isset($_POST['project'])) {
        $stripped = mysql_real_escape_string($_GET['id']);
        $title = mysql_real_escape_string($_POST['title']);
        $about = mysql_real_escape_string($_POST['about']);
        $code = mysql_real_escape_string($_POST['code']);

        mysql_query("INSERT INTO cms_prosjekt (userid, title, about, code) VALUES ('" . $_SESSION['user']['id'] . "', '" . $title . "', '" . $about . "', '" . $code . "')") or die(mysql_error());
    }

暫無
暫無

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

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