<?php header("content-type:text/html;charset=utf-8"); if($con = mysql_connect('localhost','root','root')) { echo "鏈接成功"; } else { echo "鏈接失敗"; } //localhost:服務器 //root:用戶名 //root:密碼 ?>
一、鏈接成功,返回 MySQL標識符;
php
二、鏈接失敗,返回false。html
判斷PHP是否已經安裝mysql擴展:
mysql
<?php if(function_exists('mysql_connect')) { echo "mysql擴展已經安裝"; } ?>
PHP中一個數據庫可能有一個或者多個擴展,其中既有官方的,也有第三方提供的。像Mysql經常使用的擴展有原生的mysql庫,也可使用加強版的mysqli擴展,還可使用PDO進行鏈接與操做。sql
不一樣的擴展提供基本相近的操做方法,不一樣的是可能具有一些新特性,以及操做性能可能會有所不一樣。數據庫
mysql擴展進行數據庫鏈接的方法:數組
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
mysqli擴展:服務器
$link = mysqli_connect('mysql_host', 'mysql_user', 'mysql_password');
PDO擴展:函數
$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);
示例:
性能
<?php $link = mysql_connect('127.0.0.1', 'code1', '') or die('數據庫鏈接失敗'); mysql_select_db('code1'); mysql_query("set names 'utf8'"); $result = mysql_query('select * from user limit 1'); $row = mysql_fetch_assoc($result); print_r($row);
一、設置字符集
fetch
mysql_query("set names 'utf8'");
二、選擇數據庫
mysql_select_db("db_name");
鏈接成功返回TRUE,鏈接失敗返回false。
存在狀況:(1)數據庫不存在;(2)無權限操做數據庫
$link = mysql_connect("localhost","root","root"); mysql_close($link);
mysql_query("insert into table (name) values('abc')");
返回值根據SQL語句不一樣而各有不一樣:
一、insert語句成功返回TRUE,失敗返回FALSE
二、對於查詢類的語句會返回一個資源句柄(resource),能夠經過該資源獲取查詢結果集中的數據。
插入新數據到mysql中:
$sql = "insert into user(name, age, class) values('李四', 18, '高三一班')"; mysql_query($sql); //執行插入語句
一般數據都是存儲在變量或者數組中,所以sql語句須要先進行字符串拼接獲得。
$name = '李四'; $age = 18; $class = '高三一班'; $sql = "insert into user(name, age, class) values('$name', '$age', '$class')"; mysql_query($sql); //執行插入語句
echo mysql_error();
在mysql中,執行插入語句之後,能夠獲得自增的主鍵id,經過PHP的mysql_insert_id函數能夠獲取該id。
$uid = mysql_insert_id();
這個id的做用很是大,一般能夠用來判斷是否插入成功,或者做爲關聯ID進行其餘的數據操做。
返回整型下標的數組,一次返回一行數據,而後指針下移
返回整型下標(索引數組)和關聯下標數組,一次返回一行數據,而後指針下移;
mysql_fetch_array($result,""),第二個參數可取三個值:
1.MYSQL_ASSOC——關聯數組;
2.MYSQL_NUM——數字數組;
3.MYSQL_BOTH——二者皆有(默認)
返回關聯數組
輸出對象
調取用:$obj->name
$query = mysql_query("select * from test"); $result = mysql_fetch_object($query); var_dump($result); echo $ressult->name; //輸出名字
test數據庫:
id(1,2,3) name(蘋果,香蕉,西瓜)
$query = mysql_query("select * from test"); $result = mysql_fetch_row($query); var_dump($result);
返回查詢到的資源的第一條數據:
array(2) { [0]=> string(1) "1" [1]=> string(6) "蘋果" }
while循環輸出全部結果:
while($result = mysql_fetch_row($query)) { var_dump($result); }
輸出結果:
array(2) { [0]=> string(1) "1" [1]=> string(6) "蘋果" } array(2) { [0]=> string(1) "2" [1]=> string(6) "香蕉" } array(2) { [0]=> string(1) "3" [1]=> string(6) "西瓜" }
一條一條輸出:
$row1 = mysql_fetch_row($query); //第一條數據 var_dump($row1); $row1 = mysql_fetch_row($query); //第二條數據 var_dump($row1); $row1 = mysql_fetch_row($query); //第三條數據 var_dump($row1); $row1 = mysql_fetch_row($query); //bool(false) var_dump($row1); $row1 = mysql_fetch_row($query); //bool(false) var_dump($row1);
輸出結果:
array(2) { [0]=> string(1) "1" [1]=> string(6) "蘋果" } array(2) { [0]=> string(1) "2" [1]=> string(6) "香蕉" } array(2) { [0]=> string(1) "3" [1]=> string(6) "西瓜" } bool(false) bool(false)
只輸出一個字段:
$query = mysql_query("select name from test"); while($result = mysql_fetch_row($query)) { var_dump($result); }
輸出結果:
array(1) { [0]=> string(6) "蘋果" } array(1) { [0]=> string(6) "香蕉" } array(1) { [0]=> string(6) "西瓜" }
輸出結果爲一個數字。
$query = mysql_query("select * from test"); mysql_num_rows($query);
用途:判斷取出的結果是否有數據,若是有則輸出數據
$query = mysql_query("select * from test"); if($query && mysql_num_rows($query) != 0) { //輸出結果 while($row = mysql_fetch_row($query)) { echo $row[0]; } } else { echo "沒有數據"; }
三個參數:結果集的地址、行號(0開始)、字段名或字段位置(0,1,2……)(可爲空,默認爲第一個字段)
$query = mysql_query("select * from test"); mysql_result($query,0,'name');
返回前一次受insert、update、delete影響的記錄行數
參數:鏈接標識符
<?php $link = mysql_connect('127.0.0.1', 'code1', '') or die('數據庫鏈接失敗'); mysql_select_db('code1'); mysql_query("set names 'utf8'"); $result = mysql_query('delete from user limit 1'); echo "刪除的數據條數爲:".mysql_affected_rows($link);