新聞中心
如何用php一次修改多條記錄
多個(gè)提交和一個(gè)提交的道理是相同的,只是一些細(xì)節(jié)上要注意。
10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有伊春免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
提交一個(gè)你懂了,我還是提一下,表單是:
form
input type=text name=name
input type=text name=sex
input type=text name=age
input type=text name=address
/form
PHP存數(shù)據(jù)庫(kù)的語(yǔ)句是:
$sql="insert into tab(...) values ($_POST[...])";//省略字段和值
那么多個(gè)提交的方法一,表單是:
form
input type=text name=name1input type=text name=sex1input type=text name=age1input type=text name=address1
input type=text name=name2input type=text name=sex2input type=text name=age2input type=text name=address2
/form
PHP存數(shù)據(jù)庫(kù)語(yǔ)句是:
$sql="insert into tab(...) values ($_POST[...1])";//省略字段和值
mysql_query($sql);
$sql="insert into tab(...) values ($_POST[...2])";//省略字段和值
mysql_query($sql);
上面方法一寫(xiě)的例子是兩條,多條的方法相同,技巧就是輸出表單使用JS的循環(huán),存盤(pán)的PHP代碼也可以循環(huán),并且能夠判斷為空的就不提交,比如表單20條,只填了5條,就只存5條到數(shù)據(jù)庫(kù)。
方法二是使用數(shù)組,表單:
form
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
/form
PHP代碼是:
for ($i=0;$icount($_POST["name"]);$i++)
if ($_POST["name"][$i]!='')
{
$sql="insert into tab(...) values ($_POST[...][$i])";//省略字段和值
mysql_query($sql);
}
這樣表單可以寫(xiě)任意多行,PHP里面是數(shù)組,能夠自動(dòng)獲取有多少數(shù)據(jù)。
PHP調(diào)用事務(wù)多次操作數(shù)據(jù)庫(kù)時(shí),應(yīng)該怎么辦
tp開(kāi)啟事務(wù): M()-startTrans(); M()-commit();M()-rollback();#thinkphp3.2
php 同時(shí)修改兩個(gè)數(shù)據(jù)庫(kù)
1)首先你會(huì)不會(huì)修改一個(gè)數(shù)據(jù),是真正明白操作的修改?
2)針對(duì)兩個(gè)數(shù)據(jù)庫(kù)各建一個(gè)連接,$link1和$link2,然后對(duì)后面操作數(shù)據(jù)庫(kù)的操作復(fù)制一份,采用不同的連接做輸入?yún)?shù),這樣就能同時(shí)修改兩個(gè)數(shù)據(jù)庫(kù)了。
如何用php修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)
舉例如下:
創(chuàng)建userinfo_update.php頁(yè)面用于查詢用戶信息,先顯示信息,在修改:
先通過(guò)GET獲取用戶編號(hào)查詢用戶信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
頁(yè)面效果:
創(chuàng)建update.php文件,用于修改用戶信息:
使用到了mysql_affected_rows() 函數(shù)返回前一次 MySQL 操作所影響的記錄行數(shù)。
//通過(guò)post獲取頁(yè)面提交數(shù)據(jù)信息
$userId = $_POST[userId];
$userName = $_POST[userName];
$userAge = $_POST[userAge];
$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";
mysql_query($sql,$conn);//執(zhí)行SQL
$mark? = mysql_affected_rows();//返回影響行數(shù)
$url = "userinf_select.php";
運(yùn)行結(jié)果
創(chuàng)建delete.php文件,完成刪除用戶信息功能:
$userId = $_GET['userId'];
include 'connection.php';
$sql = "delete from user_info where user_id='".$userId."'";
mysql_query($sql,$con);
$mark? = mysql_affected_rows();//返回影響行數(shù)
if($mark0){
echo "刪除成功";
}else{
echo? "刪除失敗";
}
mysql_close($con);
運(yùn)行結(jié)果:
php 如何提高 “循環(huán)數(shù)據(jù)庫(kù)修改操作”的速度
給你個(gè)思路
先最大化 PHP 效率充分利用 系統(tǒng)資源。
把 sql 拆開(kāi)比如2萬(wàn)一個(gè)用一個(gè) php 去跑 總共用5個(gè) php 一起跑。
然后最大化 mysql 效率
查一下mysql 的瓶頸在哪。針對(duì)性的去優(yōu)化。
查詢慢 就看看索引什么的
寫(xiě)慢就查查 buffer 什么的。
這里強(qiáng)烈建議讀寫(xiě)分離。
用不通的數(shù)據(jù)庫(kù)實(shí)例去分別處理讀寫(xiě)。
再看看磁盤(pán) IO 性能??纯搓?duì)列數(shù)據(jù)。不行就上陣列?;蛘邌伪聿渴饐蝹€(gè)磁盤(pán)?;蛘咦x寫(xiě)在不同的磁盤(pán)進(jìn)行。
當(dāng)然用緩存也可以。
比如把10萬(wàn)條都獨(dú)出來(lái)存到 memcache 等內(nèi)存緩存中。循環(huán)處理數(shù)據(jù)的時(shí)候讀內(nèi)存的數(shù)據(jù)不用查數(shù)據(jù)庫(kù)。
還有終極大招。
你直接把數(shù)據(jù)庫(kù)都搬內(nèi)存里面。。。
網(wǎng)站欄目:php多次修改數(shù)據(jù)庫(kù) php怎么實(shí)現(xiàn)修改數(shù)據(jù)功能
當(dāng)前路徑:http://fisionsoft.com.cn/article/hpgsoi.html