PHP連接數(shù)據(jù)庫之PHP連接MYSQL數(shù)據(jù)庫代碼
在啟東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設 網(wǎng)站設計制作按需搭建網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,網(wǎng)絡營銷推廣,外貿(mào)網(wǎng)站制作,啟東網(wǎng)站建設費用合理。
?php? ? $mysql_server_name= localhost ;? //改成自己的mysql數(shù)據(jù)庫服務器 ? $mysql_username= root ;? //改成自己的mysql數(shù)據(jù)庫用戶名 ? $mysql_password= ;? //改成自己的mysql數(shù)據(jù)庫密碼 ? $mysql_database= mycounter ; ?//改成自己的mysql數(shù)據(jù)庫名 ? $conn=mysql_connect($mysql_server_name $mysql_username $mysql_password $mysql_database);? ? $sql= CREATE?DATABASE?mycounter? DEFAULT?CHARACTER?SET?gbk?COLLATE?gbk_chinese_ci;? ? ;? ? mysql_query($sql);? ? $sql= CREATE?TABLE?`counter`? (`id`?INT( )?UNSIGNED?NOT?NULL? AUTO_INCREMENT? `count`?INT( )? UNSIGNED?NOT?NULL?DEFAULT? PRIMARY?KEY? (?`id`?)?)?TYPE?=?innodb; ;? ? mysql_select_db($mysql_database $conn);? ? $result=mysql_query($sql);? ? //echo?$sql;? ? mysql_close($conn);? ? echo?"Hello!數(shù)據(jù)庫mycounter已經(jīng)成功建立!";? ? ?
PHP連接數(shù)據(jù)庫之PHP連接ACCESS數(shù)據(jù)庫代碼方法
? ? $conn?=?new?("ADODB Connection");? ? $connstr?=?"DRIVER={Microsoft?Access?Driver?(* mdb)};?DBQ=" ?realpath("data/db mdb");? ? $conn Open($connstr);? ? $rs?=?new?("ADODB RecordSet");? ? $rs Open("select?*?from?szd_t" $conn );? ? while(!?$rs eof)?{? ? $f?=?$rs Fields( );? ? echo?$f value;? ? $rs MoveNext();? ? }? ? ?
PHP連接數(shù)據(jù)庫之PHP連接MS SQL數(shù)據(jù)庫代碼方法
安裝SQL服務器并添加PHP的MSSQL擴展
使用以下代碼連接并測試
?php? ? $myServer?=?localhost;?//主機 ? $myUser?=?sa;?//用戶名 ? $myPass?=?password;?//密碼 ? $myDB?=?Northwind;?//MSSQL庫名 ? $s?=?@mssql_connect($myServer ?$myUser ?$myPass)? ? or?die(Couldnt?connect?to?SQL?Server?on?$myServer);? ? $d?=?@mssql_select_db($myDB ?$s)? ? or?die(Couldnt?open?database?$myDB);? ? $query?=?SELECT?TitleOfCourtesy+?+FirstName+?+LastName?AS?Employee?;? ? $query? =?FROM?Employees?;? ? $query? =?WHERECountry=USA?AND?Left(HomePhone ? )?=?( );? ? $result?=?mssql_query($query);? ? $numRows?=?mssql_num_rows($result);? ? echo? h ? ?$numRows? ?Row? ?($numRows?==? ???:?s)? ?Returned?/ h ;? ? while($row?=?mssql_fetch_array($result))? ? {? ? echo? li? ?$row[Employee]? ? /li;? ? }? ? ?
PHP連接數(shù)據(jù)庫之PHP連接Oracle數(shù)據(jù)庫
PHP提供了兩套函數(shù)與Oracle連接 分別是ORA_和OCI函數(shù) 其中ORA_函數(shù)略顯陳舊 OCI函數(shù)更新?lián)f更好一些 兩者的使用語法幾乎相差無幾 你的PHP安裝選項應該可以支持兩者的使用
?? if?($conn=Ora_Logon("user@TNSNAME" "password"))? ? {?echo?"SUCCESS?!?Connected?to?databasen";? ? }else? ? {echo?"Failed?: (?Could?not?connect?to?databasen";}? ? Ora_Logoff($conn);? ? phpinfo();? ? ?? ? lishixinzhi/Article/program/PHP/201405/30761
思路:
讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
示例
文件夾結(jié)構(gòu)
/
file.csv????//csv大文件,這里只模擬三行數(shù)據(jù),不考慮運行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運行效率的瓶頸主要在寫入數(shù)據(jù)庫操作)
index.php????//php文件
file.csv
singi,20
lily,19
daming,23
index.php
/**
*?讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
*/
//獲取數(shù)據(jù)庫實例
$dsn?=?'mysql:dbname=test;host=127.0.0.1';
$user?=?'root';
$password?=?'';
try?{
$db?=?new?PDO($dsn,?$user,?$password);
}?catch?(PDOException?$e)?{
echo?'Connection?failed:?'?.?$e-getMessage();
}
//讀取file.csv文件
if?(($handle?=?fopen("file.csv",?"r"))?!==?FALSE)?{
while?(($row?=?fgetcsv($handle,?1000,?","))?!==?FALSE)?{
//寫入數(shù)據(jù)庫
$sth?=?$db-prepare('insert?into?test?set?name=:name,age=:age');
$sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth-bindParam(':age',$row[1],PDO::PARAM_INT);
$sth-execute();
}
fclose($handle);
}
數(shù)據(jù)表
CREATE?TABLE?`test`?(
`id`?INT(10)?UNSIGNED?NOT?NULL?AUTO_INCREMENT,
`name`?VARCHAR(255)?NULL?DEFAULT?''?COLLATE?'utf8mb4_bin',
`age`?INT(10)?NULL?DEFAULT?'0',
PRIMARY?KEY?(`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
運行結(jié)束后,數(shù)據(jù)庫中會插入csv中的三行數(shù)據(jù)
1. 把現(xiàn)有表中的 email 字段設為 "唯一" 或者 "主鍵";2. 用SQL語句導入csv文件:LOAD DATA INFILE 'file_name.csv' IGNORE #注意, 這里的IGNORE是關鍵, 不導入重復的行
INTO TABLE tbl_name
FIELDS
TERMINATED BY ',' #用逗號分割字段
OPTIONALLY ENCLOSED BY '"' #根據(jù)csv文件的字符串是否用引號括起來設置
用ASP連接各種數(shù)據(jù)庫的方法
一、ASP的對象存取數(shù)據(jù)庫方法
在ASP中,用來存取數(shù)據(jù)庫的對象統(tǒng)稱ADO(Active Data Objects),主要含有三種對象:Connection、Recordset 、Command
Connection:負責打開或連接數(shù)據(jù)
Recordset:負責存取數(shù)據(jù)表
Command:負責對數(shù)據(jù)庫執(zhí)行行動查詢命令
二、連接各數(shù)據(jù)庫的驅(qū)動程序
連接各數(shù)據(jù)庫可以使用驅(qū)動程序,也可以使用數(shù)據(jù)源,不過我建議大家使用驅(qū)動程序,因為使用驅(qū)動程序非常方便、簡單,而使用數(shù)據(jù)源比較麻煩。
ODBC鏈接
適合數(shù)據(jù)庫類型 鏈接方式
access "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"
dBase "Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"
Oracle "Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"
MSSQL server "Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"
MS text "Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"
Visual Foxpro "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"
MySQL "Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"
OLEDB鏈接
適合的數(shù)據(jù)庫類型 鏈接方式
access "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;"
Oracle "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"
MS SQL Server "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;"
MS text "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties′text;FMT=Delimited′"
而我們在一般情況下使用Access的數(shù)據(jù)庫比較多,在這里我建議大家連接Access數(shù)據(jù)庫使用下面的方法:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" "data source = " server.mappath("../db/bbs.mdb")
其中../db/bbs.mdb是你的數(shù)據(jù)庫存放的相對路徑!如果你的數(shù)據(jù)庫和ASP文件在同一目錄下,你只要這樣寫就可以了:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" "data source = " server.mappath("bbs.mdb")
有許多初學者在遇到數(shù)據(jù)庫連接時總是會出問題,然而使用上面的驅(qū)動程序只要你的數(shù)據(jù)庫路徑選對了就不會出問題了。
fgetcsv 可以讀取fopen打開的文件,并讀取一行,
這樣可以防止文件太大而內(nèi)存溢出
然后每讀取一定行數(shù),入庫一次,