[英]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_
函數的不推薦使用,您應該立即停止使用代碼。 相反,要了解准備好的語句 ,並使用PDO或MySQLi- 本文將幫助您確定哪一個。
根據要更新的記錄數和建立的連接數,這可能會降低腳本的速度。
如果希望INSERT
記錄,則需要使用准備好的語句。
另外,我不理解commnet // Mysql_num_row is counting table row
對save_language
函數中的// Mysql_num_row is counting table row
進行// Mysql_num_row is counting table row
,因為您沒有在任何地方使用結果中的行數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.