1)首先你會不會修改一個數(shù)據(jù),是真正明白操作的修改?
創(chuàng)新互聯(lián)建站成立于2013年,我們提供高端網(wǎng)站建設(shè)公司、重慶網(wǎng)站制作、成都網(wǎng)站設(shè)計、網(wǎng)站定制、成都全網(wǎng)營銷推廣、微信小程序、微信公眾號開發(fā)、seo優(yōu)化排名服務(wù),提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計、程序開發(fā)來完成項目落地,為成都假山制作企業(yè)提供源源不斷的流量和訂單咨詢。
2)針對兩個數(shù)據(jù)庫各建一個連接,$link1和$link2,然后對后面操作數(shù)據(jù)庫的操作復(fù)制一份,采用不同的連接做輸入?yún)?shù),這樣就能同時修改兩個數(shù)據(jù)庫了。
舉例如下:
創(chuàng)建userinfo_update.php頁面用于查詢用戶信息,先顯示信息,在修改:
先通過GET獲取用戶編號查詢用戶信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
頁面效果:
創(chuàng)建update.php文件,用于修改用戶信息:
使用到了mysql_affected_rows() 函數(shù)返回前一次 MySQL 操作所影響的記錄行數(shù)。
//通過post獲取頁面提交數(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";
運行結(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);
運行結(jié)果:
另一個思路你試試:
html:
input?type="text"?name="A[]"?/
input?type="text"?name="B[]"?/
input?type="hidden"?name="ids[]"?value="{$id}"?/
php:
?php
$a?=?$_POST['A'];
$b?=?$_POST['B'];
$ids?=?$_POST['ids'];
foreach($a?as?$k?=?$v)?{
$sql?=?"update?abc?set?a='{$v}',?b='{$b[$k]}'?where?id='{$ids[$k]}'";
mysql_query($sql);
}
多個提交和一個提交的道理是相同的,只是一些細(xì)節(jié)上要注意。
提交一個你懂了,我還是提一下,表單是:
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ù)庫的語句是:
$sql="insert into tab(...) values ($_POST[...])";//省略字段和值
那么多個提交的方法一,表單是:
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ù)庫語句是:
$sql="insert into tab(...) values ($_POST[...1])";//省略字段和值
mysql_query($sql);
$sql="insert into tab(...) values ($_POST[...2])";//省略字段和值
mysql_query($sql);
上面方法一寫的例子是兩條,多條的方法相同,技巧就是輸出表單使用JS的循環(huán),存盤的PHP代碼也可以循環(huán),并且能夠判斷為空的就不提交,比如表單20條,只填了5條,就只存5條到數(shù)據(jù)庫。
方法二是使用數(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);
}
這樣表單可以寫任意多行,PHP里面是數(shù)組,能夠自動獲取有多少數(shù)據(jù)。
一、PHP操作MySql數(shù)據(jù)庫
新增數(shù)據(jù)
?php
$query
=
"INSERT
INTO
grade
(name,email,point,regdate)
VALUE
('
李三','yc60.com@gmail.com',,NOW())"
;
@mysql_query($query)
or
die(
'添加數(shù)據(jù)出錯:'
.mysql_error());
?
修改數(shù)據(jù)
?php
$query
=
"UPDATE
grade
SET
name='小可愛'
WHERE
id=6"
;
@mysql_query($query)
or
die(
'修改出錯:'
.mysql_error());
?
刪除數(shù)據(jù)
?php
$query
=
"DELETE
FROM
grade
WHERE
id=6";
@mysql_query($query)
or
die(
'刪除錯誤:'
.mysql_error());
?
顯示數(shù)據(jù)
?php
$query
=
"SELECT
id,name,email,point
FROM
grade";
$result
=
@mysql_query($query)
or
die(
'查詢語句出錯:'
.mysql_error());
while
(!!
$row
=
mysql_fetch_array($result))
{
echo
$row[
'id'
].
'----'
.$row['name'
].'----'
.$row
['email'
].
'----'
.$row['point'
];
echo
'br
/
';
}
?
二、其他常用函數(shù)
mysql_f
etch_row()
:從結(jié)果集中取得一行作為枚舉數(shù)組
mysql_f
etch_assoc()
:
從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組
mysql_f
etch_array()
:
從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有
mysql_f
etch_lengths
()
:
取得結(jié)果集中每個輸出的長度
mysql_f
ield_name():
取得結(jié)果中指定字段的字段名
mysql_num_rows():
取得結(jié)果集中行的數(shù)目
mysql_num_f
ields():取得結(jié)果集中字段的數(shù)目
mysql_get_client_inf
o()
:
取得
MySQL
客戶端信息
mysql_get_host_info():
取得
MySQL
主機信息
mysql_get_proto_info():
取得
MySQL
協(xié)議信息
mysql_get_server_inf
o()
:
取得
MySQL
服務(wù)器信息
給你個思路
先最大化 PHP 效率充分利用 系統(tǒng)資源。
把 sql 拆開比如2萬一個用一個 php 去跑 總共用5個 php 一起跑。
然后最大化 mysql 效率
查一下mysql 的瓶頸在哪。針對性的去優(yōu)化。
查詢慢 就看看索引什么的
寫慢就查查 buffer 什么的。
這里強烈建議讀寫分離。
用不通的數(shù)據(jù)庫實例去分別處理讀寫。
再看看磁盤 IO 性能。看看隊列數(shù)據(jù)。不行就上陣列。或者單表部署單個磁盤。或者讀寫在不同的磁盤進(jìn)行。
當(dāng)然用緩存也可以。
比如把10萬條都獨出來存到 memcache 等內(nèi)存緩存中。循環(huán)處理數(shù)據(jù)的時候讀內(nèi)存的數(shù)據(jù)不用查數(shù)據(jù)庫。
還有終極大招。
你直接把數(shù)據(jù)庫都搬內(nèi)存里面。。。