mysql 概念

<?php 
   
//mysql概念經常使用函數
     
/**
 PHP想操做mysql,得先鏈接上Mysql服務器

 1:鏈接須要哪些要素?
 答:服務器的地址,用戶名,密碼,端口

 2:怎麼連
 答:用mysql_connect()函數來連
 */
/* $server: 服務器的地址[域名/ip],不寫通常默認是localhost
$username: 帳號
$password: 密碼
$new_link: 是否從新鏈接 */
$conn=mysql_connect('localhost','root','1987',true);
if(!$conn){
	die('鏈接錯誤'.mysql_error());
}

mysql_select_db('php');  //選庫
mysql_set_charset('utf8');  //設置字符編碼
$sql='select * from stu';  
$rs=mysql_query($sql);  //發送sql語句成功返回資源

// 怎麼取? 有專門的工具函數  mysql_fetch_assoc/row/array/object

print_r(mysql_fetch_assoc($rs));    //取出的是 關聯數組
print_r(mysql_fetch_row($rs));    // 結果是一個 索引數組
print_r(mysql_fetch_array($rs));  //取出的結果 既有數字索引,也有字段索引
print_r(mysql_fetch_object($rs));  //返回的是對象


while (!!$row=mysql_fetch_assoc($rs)){
	$arr[]=$row;
}

print_r($arr);

/* 若是鏈接oracle數據庫和sqlserver數據庫,又用什麼函數?
答:能夠用oci_*系列函數 和 mssql_*系列函數

問:太麻煩了,要是換服務器了,豈不是個人程序要重寫?
答:不用怕,PDO則是一個統一的數據庫接口.
對於程序來講,屏蔽了數據庫之間的不一致,
不管什麼數據庫,用PDO的寫法都一致. */


// 地址欄來一個 id=83 or 1
/*
 根據$sql拼接的結果
$sql = 'delete from stu where id=83 or 1'

1恆爲真,由於全部的行,都知足條件,都被刪了.
這是一個很是簡單的sql注入的例子.
// 若是是合法的id,應該是整型值纔對,不該該是字符串
$id = isset($_GET['id'])?$_GET['id']+0:0;
// 字符串+0,變成整型了,不會再有注入的功能了.


對於PHP這種腳本語言, 在PHP運行結束後,一切資源會自動釋放
有一些人,就乾脆不mysql_close來手動釋放資源,
對於小網站也沒有太大問題.


對於大網站來講,就比較明顯了,好比某個業務須要處理1秒,才能處理完
而大網站中,1秒都有可能發生50次新的鏈接請求.
完釋放1秒鐘,就50次請求有可能被你影響.
對於大併發的網站,應儘早釋放.
好比上例,上while前,while釋放,影響是很是大的.
*/
 //關閉鏈接
  mysql_close($conn);

//也能夠分裝成類

  
  
  
  
  
  
  
  

?>
相關文章
相關標籤/搜索