PHP訪問MySQL數(shù)據(jù)庫:
創(chuàng)新互聯(lián)公司是一家專業(yè)提供徐匯企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為徐匯眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
因?yàn)檫B接數(shù)據(jù)庫需要較長的時(shí)間和較大的資源開銷,所以如果在多個(gè)網(wǎng)頁中都要頻繁地訪問數(shù)據(jù)庫,則可以建立與數(shù)據(jù)庫的持續(xù)連接。即調(diào)用mysql_pconnect()代替mysql_connect()。
基本步驟:
1.連接服務(wù)器:mysql_connect();
2.選擇數(shù)據(jù)庫:mysql_select_db();
3.執(zhí)行SQL語句:mysql_query();
查詢:select
顯示:show
插入:insert
into
更新:update
刪除:delete
4.關(guān)閉結(jié)果集:mysql_free_result($result);
5.關(guān)閉數(shù)據(jù)庫:mysql_close($link);
一、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é)果集中每個(gè)輸出的長度
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
主機(jī)信息
mysql_get_proto_info():
取得
MySQL
協(xié)議信息
mysql_get_server_inf
o()
:
取得
MySQL
服務(wù)器信息
1、首先獲得用戶名稱
2、用你的代碼獲得增加多少金錢
3、連接數(shù)據(jù)庫 查看(mysql_connect,mysql_link)
4、假設(shè)如下語句,就可實(shí)現(xiàn)你的增加用戶錢數(shù)的目的!
alter member set memberdata=memberdata-5 where 用戶名="xxx";
--------------------------------
晚上給你一個(gè)演示!
其實(shí),這樣的操作,你可以看看Discuz的源碼就明白了!
本文實(shí)例講述了PHP基于單例模式實(shí)現(xiàn)的數(shù)據(jù)庫操作基類。分享給大家供大家參考,具體如下:
配置文件:
?php
$db
=
array(
'host'='localhost',
'user'='root',
'password'='',
'database'='test',
)
?
php
數(shù)據(jù)庫基類:
?php
class
db
{
public
$conn;
public
static
$sql;
public
static
$instance=null;
private
function
__construct(){
require_once('db.config.php');
$this-conn
=
mysql_connect($db['host'],$db['user'],$db['password']);
if(!mysql_select_db($db['database'],$this-conn)){
echo
"失敗";
};
mysql_query('set
names
utf8',$this-conn);
}
public
static
function
getInstance(){
if(is_null(self::$instance)){
self::$instance
=
new
db;
}
return
self::$instance;
}
/**
*
查詢數(shù)據(jù)庫
*/
public
function
select($table,$condition=array(),$field
=
array()){
$where='';
if(!empty($condition)){
foreach($condition
as
$k=$v){
$where.=$k."='".$v."'
and
";
}
$where='where
'.$where
.'1=1';
}
$fieldstr
=
'';
if(!empty($field)){
foreach($field
as
$k=$v){
$fieldstr.=
$v.',';
}
$fieldstr
=
rtrim($fieldstr,',');
}else{
$fieldstr
=
'*';
}
self::$sql
=
"select
{$fieldstr}
from
{$table}
{$where}";
$result=mysql_query(self::$sql,$this-conn);
$resuleRow
=
array();
$i
=
0;
while($row=mysql_fetch_assoc($result)){
foreach($row
as
$k=$v){
$resuleRow[$i][$k]
=
$v;
}
$i++;
}
return
$resuleRow;
}
/**
*
添加一條記錄
*/
public
function
insert($table,$data){
$values
=
'';
$datas
=
'';
foreach($data
as
$k=$v){
$values.=$k.',';
$datas.="'$v'".',';
}
$values
=
rtrim($values,',');
$datas
=
rtrim($datas,',');
self::$sql
=
"INSERT
INTO
{$table}
({$values})
VALUES
({$datas})";
if(mysql_query(self::$sql)){
return
mysql_insert_id();
}else{
return
false;
};
}
/**
*
修改一條記錄
*/
public
function
update($table,$data,$condition=array()){
$where='';
if(!empty($condition)){
foreach($condition
as
$k=$v){
$where.=$k."='".$v."'
and
";
}
$where='where
'.$where
.'1=1';
}
$updatastr
=
'';
if(!empty($data)){
foreach($data
as
$k=$v){
$updatastr.=
$k."='".$v."',";
}
$updatastr
=
'set
'.rtrim($updatastr,',');
}
self::$sql
=
"update
{$table}
{$updatastr}
{$where}";
return
mysql_query(self::$sql);
}
/**
*
刪除記錄
*/
public
function
delete($table,$condition){
$where='';
if(!empty($condition)){
foreach($condition
as
$k=$v){
$where.=$k."='".$v."'
and
";
}
$where='where
'.$where
.'1=1';
}
self::$sql
=
"delete
from
{$table}
{$where}";
return
mysql_query(self::$sql);
}
public
static
function
getLastSql(){
echo
self::$sql;
}
}
$db
=
db::getInstance();
//$list
=
$db-select('demo',array('name'='tom','password'='ds'),array('name','password'));
//echo
$db-insert('demo',array('name'='腳本之家','password'='123'));
//echo
$db-update('demo',array("name"='xxx',"password"='123'),array('id'=1));
echo
$db-delete('demo',array('id'='2'));
db::getLastSql();
echo
"pre";
?
更多關(guān)于PHP操作數(shù)據(jù)庫相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+mysql數(shù)據(jù)庫操作入門教程》、《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
1,根目錄下config.php中定義了數(shù)據(jù)庫信息:
// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'qqqq');
define('DB_DATABASE', 'qqqq');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
2,systemlibrary文件夾下db.php中定義了DB類,數(shù)據(jù)庫的連接方法
$this-db = new $class($hostname, $username, $password, $database, $port);
3,index.php中初始化數(shù)據(jù)庫連接
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE, DB_PORT);
4,controller中調(diào)用model層定義的查詢函數(shù)
$layout_id = $this-model_catalog_category-getCategoryLayoutId(end($path));
5,model層getCategoryLayoutId函數(shù)中返回查詢sql結(jié)果
$query = $this-db-query("SELECT * FROM " . DB_PREFIX . "category_to_layout WHERE category_id = '" . (int)$category_id . "' AND store_id = '" . (int)$this-config-get('config_store_id') . "'");
本文實(shí)例講述了PHP使用pdo連接access數(shù)據(jù)庫并循環(huán)顯示數(shù)據(jù)操作。分享給大家供大家參考,具體如下:
PDO連接與查詢:
try
{
$conn
=
new
PDO("odbc:driver={microsoft
access
driver
(*.mdb)};
dbq=".realpath("MyDatabase.mdb"))
or
die("鏈接錯誤!");
//echo
"鏈接成功!";
}
catch(PDOException
$e){
echo
$e-getMessage();
}
$sql
=
"select
*
from
users";
1.
foreach()方法
foreach
($conn-query($sql)
as
$row)
{
$row["UserID"];
$row["UserName"];
$row["UserPassword"];
}
2.
while()方法
$rs
=
$conn-query($sql);
$rs-setFetchMode(PDO::FETCH_NUM);
while($row=$rs-fetch()){
$row[0];
$row[1];
$row[2];
}
php使用PDO抽象層獲取查詢結(jié)果,主要有三種方式:
(1)PDO::query()查詢。
看下面這段php代碼:
?php
//PDO::query()查詢
$res
=
$db-query('select
*
from
user');
$res-setFetchMode(PDO::FETCH_NUM);
//數(shù)字索引方式
while
($row
=
$res-fetch()){
print_r($row);
}
?
(2)PDO-exec()處理sql
?php
//PDO-exec()處理sql
$db-setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$res
=
$db-exec("insert
into
user(id,name)
values('','php點(diǎn)點(diǎn)通')");
echo
$res;
?
(3)PDO::prepare()預(yù)處理執(zhí)行查詢
?php
//PDO::prepare()預(yù)處理執(zhí)行查詢
$res
=
$db-prepare("select
*
from
user");
$res-execute();
while
($row
=
$res-fetchAll())
{
print_r($row);
}
?
setAttribute()
方法是設(shè)置屬性,常用參數(shù)如下:
PDO::CASE_LOWER
--
強(qiáng)制列名是小寫
PDO::CASE_NATURAL
--
列名按照原始的方式
PDO::CASE_UPPER
--
強(qiáng)制列名為大寫
setFetchMode方法來設(shè)置獲取結(jié)果集的返回值的類型,常用參數(shù)如下:
PDO::FETCH_ASSOC
--
關(guān)聯(lián)數(shù)組形式
PDO::FETCH_NUM
--
數(shù)字索引數(shù)組形式
PDO::FETCH_BOTH
--
兩者數(shù)組形式都有,這是默認(rèn)的
PDO::FETCH_OBJ
--
按照對象的形式,類似于以前的
mysql_fetch_object()
對上面總結(jié)如下:
查詢操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO-query()
—
處理一條SQL語句,并返回一個(gè)“PDOStatement”
PDO-exec()
—
處理一條SQL語句,并返回所影響的條目數(shù)
PDO::prepare()主要是預(yù)處理操作,需要通過$rs-execute()來執(zhí)行預(yù)處理里面的SQL語句
最后介紹兩個(gè)常用的函數(shù):
(1)fetchColumn()獲取指定記錄里一個(gè)字段結(jié)果,默認(rèn)是第一個(gè)字段!
?php
$res
=
$db-query('select
*
from
user');
//獲取指定記錄里第二個(gè)字段結(jié)果
$col
=
$res-fetchColumn(1);
echo
$col;
?
(2)fetchAll(),從一個(gè)結(jié)果集中獲取數(shù)據(jù),然后存放在關(guān)聯(lián)數(shù)組中
?php
$res
=
$db-query('select
*
from
user');
$res_arr
=$res-fetchAll();
print_r($res_arr);
?
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php+Oracle數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:PHP使用PDO連接ACCESS數(shù)據(jù)庫PHP數(shù)據(jù)庫鏈接類(PDO+Access)實(shí)例分享php中mysql連接方式PDO使用詳解關(guān)于php連接mssql:pdo
odbc
sql
serverPhp中用PDO查詢Mysql來避免SQL注入風(fēng)險(xiǎn)的方法php中在PDO中使用事務(wù)(Transaction)全新的PDO數(shù)據(jù)庫操作類php版(僅適用Mysql)php使用pdo連接并查詢sql數(shù)據(jù)庫的方法php使用pdo連接mssql
server數(shù)據(jù)庫實(shí)例PHP實(shí)現(xiàn)PDO的mysql數(shù)據(jù)庫操作類