php和mysql資料庫
阿新 • • 發佈:2018-12-23
說明:
php版本: PHP 7.3.0
mysql資料庫的版本:mysql Ver 8.0.13 for Win64 on x86_64
系統環境: windows 7 ,64位
一、php中的配置
在 php\\php.ini 檔案中,配置“;extension=mysqli” ,將最前面“;”去掉,將等號右邊改為“ext/php_mysqli.dll”檔案所在的絕對路徑,比如,作者的配置如下:
extension=F:/ApatchInstallWorkspace/dev/servers/php/ext/php_mysqli.dll
二、mysql 使用注意
mysql 8 版本預設使用的plugin是 “caching_sha2_password”,而php 7 不識別這種模式,要將其改為:
“mysql_native_password”。
更改方式如下(修改密碼):
alter user 'php'@'%' identified with mysql_native_password by '[email protected]';
mysql> use mysql; Database changed mysql> select user,plugin from user; +------------------+-----------------------+ | user | plugin | +------------------+-----------------------+ | php | mysql_native_password | | mysql.infoschema | caching_sha2_password | | mysql.session | caching_sha2_password | | mysql.sys | caching_sha2_password | | root | mysql_native_password | +------------------+-----------------------+ 5 rows in set (0.00 sec)
三、php操作mysql
3.1 操作mysql資料,這裡使用 mysqli (mysql_* 函式在php 7 中已經移除)
<?php
//連線資料庫
// mysql_ 這種方法在php7中已經移除,改為連線資料庫
# mysql_* functions have been removed in PHP 7
/*
$con = mysql_connect("localhost","php","world");
if(!$con){
die("could not connect: ". mysql_error());
}
mysql_close($con);
*/
# 從老的mysql拓展遷移,面向過程
/*
$mysqli = mysqli_connect("localhost","php"," [email protected]","php_db");
$res = mysqli_query($mysqli, "select 'Please, do not use ' as _msg from dual");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];
*/
# 面向過程和麵向物件的方法
// 面向過程
$mysqli = mysqli_connect("localhost","php","[email protected]", "php_db");
if(mysqli_connect_errno($mysqli)){
echo "Failed to connect to MySql: ".mysqli_connect_error();
return;
}
$res = mysqli_query($mysqli,"select 'A world full of' as _msg from dual");
$row = mysqli_fetch_assoc($res);
echo $row["_msg"]."<br>";
mysqli_close($mysqli);
// 面向物件
$mysqli_o = new mysqli("localhost","php","[email protected]","php_db");
if($mysqli_o ->connect_errno){
echo "Failed to connect Mysql: ".$mysqli_o ->connect_errno;
return;
}
$res_o = $mysqli_o ->query("select 'object-oriented interface' as _msg from dual");
$row_o = $res_o->fetch_assoc();
echo $row_o["_msg"]."<br>";
$mysqli_o->close();
echo "<p>特殊的localhost</p>";
$mysqli01 = new mysqli("localhost","php","[email protected]","php_db");
if($mysqli01->connect_errno){
echo "Failed to connect MySql (".$mysqli01->connect_errno.") ".$mysqli01->connect_error;
}
echo $mysqli01->host_info ."\n";
$mysqli01->close();
$mysqli02 = new mysqli("127.0.0.1","php","[email protected]","php_db");
if($mysqli02->connect_errno){
echo "Failed to connect MySql (".$mysqli02->connect_errno.") ".$mysqli02->connect_error;
}
echo $mysqli02->host_info ."\n";
$mysqli02->close();
echo "<p>執行語句</p>";
$mysqli03 = new mysqli("localhost","php","[email protected]","php_db");
if($mysqli03->connect_errno){
echo "Failed to connect Mysql [".$mysqli03->connect_errno."]".$mysqli03->connect_error;
}
$drop_str = "drop table if exists php_test";
$create_str = "create table if not exists php_test(id int,name varchar(50))";
$insert_str = "insert into php_test(id,name) values(0,'aaa'),(1,'bbbb'),(2,'ccc'),(3,'ddd')";
# 刪除表
$drop_result = $mysqli03->query($drop_str);
echo "drop table:".$drop_result."<br>";
if(!$drop_result){
echo "Failed (".$mysqli03->errno.") :".$mysqli03->error;
return;
}
# 建立表
$create_result = $mysqli03->query($create_str);
echo "create table: $create_result <br>";
if(!$create_result){
echo "Failed (".$mysqli03->errno.") :".$mysqli03->error;
return;
}
# 插入資料
$insert_result = $mysqli03->query($insert_str);
echo "insert: $insert_result";
if(!$insert_result){
echo "Failed (".$mysqli03->errno.") :".$mysqli03->error;
return;
}
# 查詢資料
$select_result = $mysqli03->query("select id,name from php_test");
print_r($select_result);
echo "<br>";
# 遍歷結果,第一種遍歷方法
echo "<p>第一種遍歷方法:</p>";
for($row_no=0; $row_no<$select_result->num_rows;$row_no++){
$select_result->data_seek($row_no);
$rows = $select_result->fetch_assoc();
foreach($rows as $key=>$value){
echo "$key:$value ";
}
echo "<br>";
}
# 遍歷查詢結果,第二種遍歷方法
//$select_result = $mysqli03->query("select id,name from php_test");
$select_result->data_seek(0);
echo "<p>第二種遍歷方法:</p>";
while($row=$select_result->fetch_assoc()){
echo " id= ".$row["id"]." name=".$row["name"];
echo "<br>";
}
echo "<br>";
# 關閉連線
$mysqli03->close();
?>