php怎么保持?jǐn)?shù)據(jù)一致性 php怎么實(shí)現(xiàn)修改數(shù)據(jù)功能

如何讓php中通過字段和記錄查詢得到的mysql返回?cái)?shù)據(jù)保持原有的數(shù)據(jù)類型

php是弱語言,從mysql取到的類型全是string字符串,如果你需要其他類型,你需要自己轉(zhuǎn)換一下。

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、中方網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為中方等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

php有沒有操作一致性的方法?同時(shí)成功同時(shí)失敗

你說的應(yīng)該是mysql的事務(wù)機(jī)制,修改不同表數(shù)據(jù)的時(shí)候,要么同時(shí)成功,只要有一條失敗都不能算成功,你可以用php手動開啟事務(wù),可以這么寫

$mysqli-query("START?TRANSACTION");

$mysqli-query("INSERT?INTO?a(field1)?VALUES?('a1')");

$mysqli-query("INSERT?INTO?b(field2)?VALUES?('a2')");

$mysqli-query("commit");

大概格式就是這樣,希望對你有幫助

在數(shù)據(jù)庫中怎樣同時(shí)保持?jǐn)?shù)據(jù)的完整性和歷史數(shù)據(jù)的完整性。

數(shù)據(jù)庫的安全性、完整性、并發(fā)控制和恢復(fù)

from:

為了保證數(shù)據(jù)庫數(shù)據(jù)的安全可靠性和正確有效,DBMS必須提供統(tǒng)一的數(shù)據(jù)保護(hù)功能。數(shù)據(jù)保護(hù)也為數(shù)據(jù)控制,主要包括數(shù)據(jù)庫的安全性、完整性、并發(fā)控制和恢復(fù)。

1. 數(shù)據(jù)庫的存取控制

ORACLE保護(hù)信息的方法采用任意存取控制來控制全部用戶對命名對象的存取。用戶對對象的存取受特權(quán)控制。一種特權(quán)是存取一命名對象的許可,為一種規(guī)定格式。

ORACLE使用多種不同的機(jī)制管理數(shù)據(jù)庫安全性,其中有兩種機(jī)制:模式和用戶。模式為模式對象的集合,模式對象如表、視圖、過程和包等。第一數(shù)據(jù)庫有一組模式。

每一ORACLE數(shù)據(jù)庫有一組合法的用戶,可存取一數(shù)據(jù)庫,可運(yùn)行一數(shù)據(jù)庫應(yīng)用和使用該用戶各連接到定義該用戶的數(shù)據(jù)庫。當(dāng)建立一數(shù)據(jù)庫用戶時(shí),對該用戶建立一個(gè)相應(yīng)的模式,模式名與用戶名相同。一旦用戶連接一數(shù)據(jù)庫,該用戶就可存取相應(yīng)模式中的全部對象,一個(gè)用戶僅與同名的模式相聯(lián)系,所以用戶和模式是類似的。

用戶的存取權(quán)利受用戶安全域的設(shè)置所控制,在建立一個(gè)數(shù)據(jù)庫的新用戶或更改一已有用戶時(shí),安全管理員對用戶安全域有下列決策:

l 是由數(shù)據(jù)庫系統(tǒng)還是由操作系統(tǒng)維護(hù)用戶授權(quán)信息。

l 設(shè)置用戶的缺省表空間和臨時(shí)表空間。

l 列出用戶可存的表空間和在表空間中可使用空間份額。

l 設(shè)置用戶資源限制的環(huán)境文件,該限制規(guī)定了用戶可用的系統(tǒng)資源的總量。

l 規(guī)定用戶具有的特權(quán)和角色,可存取相應(yīng)的對象。

每一個(gè)用戶有一個(gè)安全域,它是一組特性,可決定下列內(nèi)容:

l 用戶可用的特權(quán)和角色;

l 用戶可用的表空間的份額;

l 用戶的系統(tǒng)資源限制。

1) 用戶鑒別:

為了防止非授權(quán)的數(shù)據(jù)庫用戶的使用,ORACLE提供二種確認(rèn)方法

操作系統(tǒng)確認(rèn)和相應(yīng)的ORACLE數(shù)據(jù)庫確認(rèn)。

如果操作系統(tǒng)允許,ORACLE可使用操作系統(tǒng)所維護(hù)的信息來鑒定用戶。由操作系統(tǒng)鑒定用戶的優(yōu)點(diǎn)是:

l 用戶可更方便地連接到ORACLE,不需要指定用戶名和口令。

l 對用戶授權(quán)的控制集中在操作系統(tǒng),ORACLE不需要存儲和管理用戶口令。然而用戶名在數(shù)據(jù)庫中仍然要維護(hù)。

l 在數(shù)據(jù)庫中的用戶名項(xiàng)和操作系統(tǒng)審計(jì)跟蹤相對應(yīng)。

ORACLE數(shù)據(jù)庫方式的用戶確認(rèn):ORACLE利用存儲在數(shù)據(jù)庫中的信息可鑒定試圖接到數(shù)據(jù)庫的一用戶,這種鑒別方法僅當(dāng)操作系統(tǒng)不能用于數(shù)據(jù)庫用戶鑒別時(shí)才使用。當(dāng)用戶使用一ORACLE數(shù)據(jù)庫時(shí)執(zhí)行用戶鑒別。每個(gè)用戶在建立時(shí)有一個(gè)口令,用戶口令在建立對數(shù)據(jù)庫連接時(shí)使用,以防止對數(shù)據(jù)庫非授權(quán)的使用。用戶的口令以密碼的格式存儲在數(shù)據(jù)庫數(shù)據(jù)字典中,用戶可隨時(shí)修改其口令。

2) 用戶的表空間設(shè)置和定額

關(guān)于表空間的使用有幾種設(shè)置選擇:

l 用戶的缺省表空間;

l 用戶的臨時(shí)表空間;

l 數(shù)據(jù)庫表空間的空間使用定額。

3) 用戶資源限制和環(huán)境文件

用戶可用的各種系統(tǒng)資源總量的限制是用戶安全域的部分。利用顯式地設(shè)置資源限制;安全管理員可防止用戶無控制地消耗寶貴的系統(tǒng)資源。資源限制是由環(huán)境文件管理。一個(gè)環(huán)境文件是命名的一組賦給用戶的資源限制。另外ORACLE為安全管理員在數(shù)據(jù)庫級提供使能或使不能實(shí)施環(huán)境文件資源限制的選擇。

ORACLE可限制幾種類型的系統(tǒng)資源的使用,每種資源可在會話級、調(diào)用級或兩者上控制。在會話級:每一次用戶連接到一數(shù)據(jù)庫,建立一會話。每一個(gè)會話在執(zhí)行SQL語句的計(jì)算機(jī)上耗費(fèi)CPU時(shí)間和內(nèi)存量進(jìn)行限制。對ORACLE的幾種資源限制可在會話級上設(shè)置。如果會話級資源限制被超過,當(dāng)前語句被中止(回滾),并返回指明會話限制已達(dá)到的信息。此時(shí),當(dāng)前事務(wù)中所有之前執(zhí)行的語句不受影響,此時(shí)僅可作COMMIT、ROLLBACK或刪除對數(shù)據(jù)庫的連接等操作,進(jìn)行其它操作都將出錯。

在調(diào)用級:在SQL語句執(zhí)行時(shí),處理該語句有好幾步,為了防止過多地調(diào)用系統(tǒng),ORACLE在調(diào)用級可設(shè)置幾種資源限制。如果調(diào)用級的資源限制被超過,語句處理被停止,該語句被回滾,并返回一錯誤。然而當(dāng)前事務(wù)的已執(zhí)行所用語句不受影響,用戶會話繼續(xù)連接。

二、 數(shù)據(jù)完整性

它是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)的完整性是為了防止數(shù)據(jù)庫存在不符合主義的數(shù)據(jù),防止錯誤信息輸入和輸出,即數(shù)據(jù)要遵守由DBA或應(yīng)用開發(fā)者所決定的一組預(yù)定義的規(guī)則。ORACLE應(yīng)用于關(guān)系數(shù)據(jù)庫的表的數(shù)據(jù)完整性有下列類型:

l 在插入或修改表的行時(shí)允許不允許包含有空值的列,稱為空與非空規(guī)則。

l 唯一列值規(guī)則,允許插入或修改的表行在該列上的值唯一。

l 引用完整性規(guī)則,同關(guān)系模型定義

l 用戶對定義的規(guī)則,為復(fù)雜性完整性檢查。

ORACLE允許定義和實(shí)施上述每一種類型的數(shù)據(jù)完整性規(guī)則,這些規(guī)則可用完整性約束和數(shù)據(jù)庫觸發(fā)器定義。

完整性約束,是對表的列定義一規(guī)則的說明性方法。

數(shù)據(jù)庫觸發(fā)器,是使用非說明方法實(shí)施完整性規(guī)則,利用數(shù)據(jù)庫觸發(fā)器(存儲的數(shù)據(jù)庫過程)可定義和實(shí)施任何類型的完整性規(guī)則。

1. 完整性約束

ORACLE利用完整性約束機(jī)制防止無效的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫的基表,如果任何DML執(zhí)行結(jié)果破壞完整性約束,該語句被回滾并返回一上個(gè)錯誤。ORACLE實(shí)現(xiàn)的完整性約束完全遵守ANSI

X3。135-1989和ISO9075-1989標(biāo)準(zhǔn)。

利用完整性約束實(shí)施數(shù)據(jù)完整性規(guī)則有下列優(yōu)點(diǎn):

l 定義或更改表時(shí),不需要程序設(shè)計(jì),便很容易地編寫程序并可消除程序性錯誤,其功能是由ORACLE控制。所以說明性完整性約束優(yōu)于應(yīng)用代碼和數(shù)據(jù)庫觸發(fā)器。

l 對表所定義的完整性約束是存儲在數(shù)據(jù)字典中,所以由任何應(yīng)用進(jìn)入的數(shù)據(jù)都必須遵守與表相關(guān)聯(lián)的完整性約束。

l 具有最大的開發(fā)能力。當(dāng)由完整性約束所實(shí)施的事務(wù)規(guī)則改變時(shí),管理員只需改變完整性約束的定義,所有應(yīng)用自動地遵守所修改的約束。

l 由于完整性約束存儲在數(shù)據(jù)字典中,數(shù)據(jù)庫應(yīng)用可利用這些信息,在SQL語句執(zhí)行之前或由ORACLE檢查之前,就可立即反饋信息。

l 由于完整性約束說明的語義是清楚地定義,對于每一指定說明規(guī)則可實(shí)現(xiàn)性能優(yōu)化。

l

由于完整性約束可臨時(shí)地使不能,以致在裝入大量數(shù)據(jù)時(shí)可避免約束檢索的開銷。當(dāng)數(shù)據(jù)庫裝入完成時(shí),完整性約束可容易地使其能,任何破壞完整性約束的任何新行在例外表中列出。

ORACLE的DBA和應(yīng)用開始者對列的值輸入可使用的完整性約束有下列類型:

l NOT NULL約束:如果在表的一列的值不允許為空,則需在該列指定NOT NULL約束。

l

UNIQUE碼約束:在表指定的列或組列上不允許兩行是具有重復(fù)值時(shí),則需要該列或組列上指定UNIQUE碼完整性約束。在UNIQUE碼約束定義中的列或組列稱為唯一碼。所有唯一完整性約束是用索引方法實(shí)施。

l PRIMARY KEY約束:在數(shù)據(jù)庫中每一個(gè)表可有一個(gè)PRIMARY KEY約束。包含在PRIMARY

KEY完整性約束的列或組列稱為主碼,每個(gè)表可有一個(gè)主碼。ORACLE使用索引實(shí)施PRIMARY KEY約束。

l FOREIGN

KEY約束(可稱引用約束):在關(guān)系數(shù)據(jù)庫中表可通過公共列相關(guān)聯(lián),該規(guī)則控制必須維護(hù)的列之間的關(guān)系。包含在引用完整性約束定義的列或組列稱為外來碼。由外來碼所引用的表中的唯一碼或方碼,稱為引用碼。包含有外來碼的表稱為子表或從屬表。由子表的外來碼所引用的表稱為雙親表或引用表。如果對表的每一行,其外來碼的值必須與主碼中一值相匹配,則需指定引用完整性約束。

l

CHECK約束:表的每行對一指定的條件必須是TRUE或未知,則需在一列或列組上指定CHECK完整性約束。如果在發(fā)出一個(gè)DML語句時(shí),CHECK約束的條件計(jì)算得FALSE時(shí),該語句被回滾。

3. 并發(fā)控制

數(shù)據(jù)庫是一個(gè)共享資源,可為多個(gè)應(yīng)用程序所共享。這些程序可串行運(yùn)行,但在許多情況下,由于應(yīng)用程序涉及的數(shù)據(jù)量可能很大,常常會涉及輸入/輸出的交換。為了有效地利用數(shù)據(jù)庫資源,可能多個(gè)程序或一個(gè)程序的多個(gè)進(jìn)程并行地運(yùn)行,這就是數(shù)據(jù)庫的并行操作。在多用戶數(shù)據(jù)庫環(huán)境中,多個(gè)用戶程序可并行地存取數(shù)據(jù)庫,如果不對并發(fā)操作進(jìn)行控制,會存取不正確的數(shù)據(jù),或破壞數(shù)據(jù)庫數(shù)據(jù)的一致性。

例:在飛機(jī)票售票中,有兩個(gè)訂票員(T1,T2)對某航線(A)的機(jī)動性票作事務(wù)處理,操作過程如圖所示:

數(shù)據(jù)庫中的A111100

T1 READ A A:=A-1 WRITE A

T2 READ A A:=A-1 WRITE A

T1工作區(qū)中的A110000

T2工作區(qū)中的A 11000

首先T1讀A,接著T2也讀A。然后T1將其工作區(qū)中的A減1,T2也采取同樣動作,它們都得0值,最后分別將0值寫回?cái)?shù)據(jù)庫。在這過程中沒有任何非法操作,但實(shí)際上多出一張機(jī)票。這種情況稱為數(shù)據(jù)庫的不一致性,這種不一致性是由于并行操作而產(chǎn)生的。所謂不一致,實(shí)際上是由于處理程序工作區(qū)中的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)不一致所造成的。如果處理程序不對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改,則決不會造成任何不一致。另一方面,如果沒有并行操作發(fā)生,則這種臨時(shí)的不一致也不會造成什么問題。數(shù)據(jù)不一致總是是由兩個(gè)因素造成:一是對數(shù)據(jù)的修改,二是并行操作的發(fā)生。因此為了保持?jǐn)?shù)據(jù)庫的一致性,必須對并行操作進(jìn)行控制。最常用的措施是對數(shù)據(jù)進(jìn)行封鎖。

1) 數(shù)據(jù)庫不一致的類型

l 不一致性

在一事務(wù)期間,其它提交的或未提交事務(wù)的修改是顯然的,以致由查詢所返回的數(shù)據(jù)集不與任何點(diǎn)相一致。

l 不可重復(fù)讀

在一個(gè)事務(wù)范圍內(nèi),兩個(gè)相同查詢將返回不同數(shù)據(jù),由于查詢注意到其它提交事務(wù)的修改而引起。

l 讀臟數(shù)據(jù)

如果事務(wù)T1將一值(A)修改,然后事務(wù)T2讀該值,在這之后T1由于某種原因撤銷對該值的修改,這樣造成T2讀取的值是臟的。

l 丟失更改

在一事務(wù)中一修改重寫另一事務(wù)的修改,如上述飛機(jī)票售票例子。

l 破壞性的DDL操作

在一用戶修改一表的數(shù)據(jù)時(shí),另一用戶同時(shí)更改或刪除該表。

1) 封鎖

在多用戶數(shù)據(jù)庫中一般采用某些數(shù)據(jù)封鎖來解決并發(fā)操作中的數(shù)據(jù)一致性和完整性問題。封鎖是防止存取同一資源的用戶之間破壞性的干擾的機(jī)制,該干擾是指不正確地修改數(shù)據(jù)或不正確地更改數(shù)據(jù)結(jié)構(gòu)。

在多用戶數(shù)據(jù)庫中使用兩種封鎖:排它(專用)封鎖和共享封鎖。排它封鎖禁止相關(guān)資源的共享,如果一事務(wù)以排它方式封鎖一資源,僅僅該事務(wù)可更改該資源,直至釋放排它封鎖。共享封鎖允許相關(guān)資源可以共享,幾個(gè)用戶可同時(shí)讀同一數(shù)據(jù),幾個(gè)事務(wù)可在同一資源上獲取共享封鎖。共享封鎖比排它封鎖具有更高的數(shù)據(jù)并行性。

在多用戶系統(tǒng)中使用封鎖后會出現(xiàn)死鎖,引起一些事務(wù)不能繼續(xù)工作。當(dāng)兩個(gè)或多個(gè)用戶彼此等待所封鎖數(shù)據(jù)時(shí)可發(fā)生死鎖。

2) ORACLE多種一致性模型。

ORACLE利用事務(wù)和封鎖機(jī)制提供數(shù)據(jù)并發(fā)存取和數(shù)據(jù)完整性。在一事務(wù)內(nèi)由語句獲取的全部封鎖在事務(wù)期間被保持,防止其它并行事務(wù)的破壞性干擾。一個(gè)事務(wù)的SQL語句所作的修改在它提交之后所啟動的事務(wù)中才是可見的。在一事務(wù)中由語句所獲取的全部封鎖在該事務(wù)提交或回滾時(shí)被釋放。

ORACLE在兩個(gè)不同級上提供讀一致性:語句級讀一致性和事務(wù)級一致性。ORCLE總是實(shí)施語句級讀一致性,保證單個(gè)查詢所返回的數(shù)據(jù)與該查詢開始時(shí)刻相一致。所以一個(gè)查詢從不會看到在查詢執(zhí)行過程中提交的其它事務(wù)所作的任何修改。為了實(shí)現(xiàn)語句級讀一致性,在查詢進(jìn)入執(zhí)行階段時(shí),在注視SCN的時(shí)候?yàn)橹顾峤坏臄?shù)據(jù)是有效的,而在語句執(zhí)行開始之后其它事務(wù)提交的任何修改,查詢將是看不到的。

ORACLE允許選擇實(shí)施事務(wù)級讀一致性,它保證在同一事務(wù)內(nèi)所有查詢的數(shù)據(jù)

4) 封鎖機(jī)制

ORACLE自動地使用不同封鎖類型來控制數(shù)據(jù)的并行存取,防止用戶之間的破壞性干擾。ORACLE為一事務(wù)自動地封鎖一資源以防止其它事務(wù)對同一資源的排它封鎖。在某種事件出現(xiàn)或事務(wù)不再需要該資源時(shí)自動地釋放。

ORACLE將封鎖分為下列類:

l

數(shù)據(jù)封鎖:數(shù)據(jù)封鎖保護(hù)表數(shù)據(jù),在多個(gè)用戶并行存取數(shù)據(jù)時(shí)保證數(shù)據(jù)的完整性。數(shù)據(jù)封鎖防止相沖突的DML和DDL操作的破壞性干擾。DML操作可在兩個(gè)級獲取數(shù)據(jù)封鎖:指定行封鎖和整個(gè)表封鎖,在防止沖突的DDL操作時(shí)也需表封鎖。當(dāng)行要被修改時(shí),事務(wù)在該行獲取排它數(shù)據(jù)封鎖。表封鎖可以有下列方式:行共享、行排它、共享封鎖、共享行排它和排它封鎖。

l DDL封鎖(字典封鎖)

DDL封鎖保護(hù)模式對象(如表)的定義,DDL操作將影響對象,一個(gè)DDL語句隱式地提交一個(gè)事務(wù)。當(dāng)任何DDL事務(wù)需要時(shí)由ORACLE自動獲取字典封鎖,用戶不能顯式地請求DDL封鎖。在DDL操作期間,被修改或引用的模式對象被封鎖。

l 內(nèi)部封鎖:保護(hù)內(nèi)部數(shù)據(jù)庫和內(nèi)存結(jié)構(gòu),這些結(jié)構(gòu)對用戶是不可見的。

php 分頁查詢怎么redis緩存

對于有分頁條件的緩存,我們也可以按照不同的分頁條件來緩存多個(gè)key,比如分頁查詢產(chǎn)品列表,page=1limit=10和page=1limit=5這兩次請求可以這樣緩存查詢結(jié)果

productList:page:1:limit:10

productList:page:1:limit:5

這個(gè)是一種常見方案,但是存在著一些問題:

緩存的value存在冗余,productList:page:1:limit:10緩存的內(nèi)容其實(shí)是包括了productList:page:1:limit:5中的內(nèi)容(緩存兩個(gè)key的時(shí)候,數(shù)據(jù)未發(fā)生變化的情況下)

僅僅是改變了查詢條件的分頁條件,就會導(dǎo)致緩存未命中,降低了緩存的命中率

為了保證數(shù)據(jù)一致性,需要清理緩存的時(shí)候,很難處理,redis的keys命令對性能影響很大,會導(dǎo)致redis很大的延遲,生產(chǎn)環(huán)境一般來說禁止該命令。自己手動拼緩存key,你可能根本不知道拼到哪一個(gè)page為止。

放棄數(shù)據(jù)一致性,通過設(shè)置失效時(shí)間來自動失效,可能會出現(xiàn)查詢第一頁命中了緩存,查詢第二頁的時(shí)候未命中緩存,但此時(shí)數(shù)據(jù)已經(jīng)發(fā)生了改變,導(dǎo)致第二頁查詢返回的和第一頁相同的結(jié)果。

以上,在分頁條件下這樣使用常規(guī)方案總感覺有諸多困擾,諸多麻煩,那是不是就應(yīng)該放棄使用緩存?

基于SortedSet的分頁查詢緩存方案

首先想到的解決方法是使用@see ListOperationsK, V不再根據(jù)分頁條件使用多個(gè)key,而是使用一個(gè)key,也不分頁將全部的數(shù)據(jù)緩存到redis中,然后按照分頁條件使用range(key,start,limit)獲取分頁的結(jié)果,這個(gè)會導(dǎo)致一個(gè)問題,當(dāng)緩存失效時(shí),并發(fā)的寫緩存會導(dǎo)致出現(xiàn)重復(fù)數(shù)據(jù)

所以想到通過使用set來處理并發(fā)時(shí)的重復(fù)數(shù)據(jù),@see ZSetOperationsK, V

代碼邏輯如下:

range(key,start,limit)按照分頁條件獲取緩存,命中則直接返回

緩存未命中,查詢(沒有分頁條件)數(shù)據(jù)庫或是調(diào)用(沒有分頁)底層接口

add(key,valueScoreMapvalue,score)寫入緩存,expire設(shè)置緩存時(shí)間

當(dāng)需要清理緩存時(shí),直接刪除key,如果是因?yàn)閿?shù)據(jù)新增和刪除,可以add(key,value,score)或remove(key,value)

redis中會按照score分值升序排列map中的數(shù)據(jù),一般的,score分值是sql語句的order by filedA的filedA的值,這樣能保證數(shù)據(jù)一致性

但是這種方式也存在一定問題:

這個(gè)key緩存的value確實(shí)是熱數(shù)據(jù),但可能只有少數(shù)數(shù)據(jù)被頻繁使用其余的可能根本就未被使用,比如數(shù)據(jù)有100頁,實(shí)際可能只會用到前10頁,這也會導(dǎo)致緩存空間的浪費(fèi),如果使用了redis虛擬內(nèi)存,也會有一定影響

sql查詢由原來的分頁查詢變成了不分頁查詢,緩存失效后,系統(tǒng)的處理能力較之前會有下降,尤其是對于大表.

標(biāo)題名稱:php怎么保持?jǐn)?shù)據(jù)一致性 php怎么實(shí)現(xiàn)修改數(shù)據(jù)功能
網(wǎng)頁路徑:http://bm7419.com/article26/ddehejg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄定制開發(fā)、建站公司、域名注冊、企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管