<?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); //也能夠分裝成類 ?>