先說一下我踩了三天的坑
我在這之前用mysql申請了一個數據庫,然后用php連接一直連接不上,試了許多辦法,都不行
下載MySQL時顯示3306端口被占用,所以選了3307
一直報錯,三天后,終于知道了,你用的數據庫必須能和php建立連接,如果你用phpstudy的話,phpstudy有內置的,直接打開用就行;
先說正確的
php連接數據庫
用到了
mysqli_connect("$host","$user","$pass","t2","3306");
函數,里面參數分別是地址,用戶名,密碼,選擇的數據表,端口號(默認3306,估計3306端口就是被phpstudy占用的)
注意:php高級版本中,棄用了mysql
相關函數
<?php
header("Content-type:text/html;charset=utf-8");$host = '127.0.0.1';
$user = 'root';
$pass = 'root';
$port=3306;$link=@mysqli_connect("$host","$user","$pass","t2","3306");
@mysqli_set_charset($link,"utf8");
if(!$link)
{echo '數據庫連接失敗:';
}
else
{echo "鏈接成功";
}?>
新建數據表
sql中,數據表新建用CREAT TABLE[IF NOT EXISTS] db_name (column_name data_type,..........);
php中,用mysql_query()
函數運行
//新建表,table——name為:MyGuests,
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if(mysqli_query($link,$sql))
{echo "創建數據表錯誤!";
}
else{echo "創建成功";
}
插入記錄
用mysqli_select_db($link,'db_name')
選擇數據表
插入數據的語句:INSERT [INTO] db_name[(col_name........)] VALUE(val..............);
mysqli_select_db($link,'study');
$name="aaaaa";
$id=170650;
$sex="boy";
$sq = "insert into study(id,name,sex) VALUE ('$id','$name','$sex')";
if (mysqli_query($link,$sq))
{
echo"success!";
}
查找記錄
查找記錄命令:select * from db_name;
引用慕課網:
。
PHP有多個函數可以獲取數據集中的一行數據,最常用的是mysql_fetch_array
,可以通過設定參數來更改行數據的下標,默認的會包含數字索引的下標以及字段名的關聯索引下標。$sql = "select * from user limit 1"; $result = mysql_query($sql); $row = mysql_fetch_array($result);
可以通過設定參數
MYSQL_NUM
只獲取數字索引數組,等同于mysql_fetch_row
函數,如果設定參數為MYSQL_ASSOC
則只獲取關聯索引數組,等同于mysql_fetch_assoc
函數。$row = mysql_fetch_row($result); $row = mysql_fetch_array($result, MYSQL_NUM);
//這兩個方法獲取的數據是一樣的
$row = mysql_fetch_assoc($result); $row = mysql_fetch_array($result, MYSQL_ASSOC);
如果要獲取數據集中的所有數據,我們通過循環來遍歷整個結果集。
$data = array(); while ($row = mysql_fetch_array($result)) {$data[] = $row; }
$find="select * from study;";
$result=mysqli_query($link,$find);
$row=mysqli_fetch_array($result);
print_r($row);