簡體   English   中英

PHP MYSQL如何將$ _POST數據插入MySQL

[英]PHP MYSQL How to insert $_POST data into MySQL

我正在使用以下代碼從MySQL數據庫提取所有語言變量和值,並填充要編輯的表單:

function language() {

    $settings = array();
    $sql = "SELECT * FROM `languages`";
    $result = mysql_query($sql);
    // Mysql_num_row is counting table row
    while ($row = mysql_fetch_assoc($result)) {

        ?>

            <div style="float:left;width:250px;padding-left:15px"><label><?php echo $row['id'];?></label></div><div style="float:left;margin-left:0px;"><input type="text" name="<?php echo $row['id'];?>" value="<?php echo $row['value'];?>" /></div>

        <? php

    }
}

我有一個基本功能,可以將上述表單中所做的更改保存回數據庫中,並進行任何更改:

function save_language() {

    $post = $_POST;
    $out = array_shift($post);

    // Mysql_num_row is counting table row
    foreach($post as $key => $value) {
        $sql = "UPDATE `languages` SET `value`='$value' WHERE `id`='$key'";
        $result = mysql_query($sql);
    }

    if ($result) {
        echo "Language Settings Updated";
    }

}

此方法有效,但是非常慢。 我是編碼的新手,我敢肯定,我忽略了一些簡單的事情,可以加快保存過程。

您的查詢實際上不應該工作,因為連接超出了函數范圍。 傳遞連接的正確方法是通過以下函數:

function language( $conn ) {
    ...
}

由於注入漏洞以及mysql_函數的不推薦使用,您應該立即停止使用代碼。 相反,要了解准備好的語句 ,並使用PDOMySQLi- 本文將幫助您確定哪一個。

根據要更新的記錄數和建立的連接數,這可能會降低腳本的速度。

如果希望INSERT記錄,則需要使用准備好的語句。

另外,我不理解commnet // Mysql_num_row is counting table rowsave_language函數中的// Mysql_num_row is counting table row進行// Mysql_num_row is counting table row ,因為您沒有在任何地方使用結果中的行數。

暫無
暫無

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

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