php+Mysql 的CRUD操作

php連接數據庫有兩種方式,一種是MySQLi,一種是PDO。兩種各有優勢

PDO 應用在 12 種不同數據庫中, MySQLi 只針對 MySQL 數據庫。所以,如果你的項目需要在多種數據庫中切換,建議使用 PDO ,這樣你只需要修改連接字符串和部門查詢語句即可。 使用 MySQLi, 如果不同數據庫,你需要重新所有代碼,包括查詢。

    兩者都是面向對象, 但 MySQLi 還提供了 API 接口。

    兩者都支持預處理語句。 預處理語句可以防止 SQL 注入,對於 web 項目的安全性是非常重要的。

連接MySQL:

<?php
$host ="localhost";
$user ="root";
$password ="123456";//密碼
$database ="test";//數據庫

$con =new mysqli($host, $user, $password, $database);

if (mysqli_connect_error()) {
    die("Database connection failed: " . mysqli_connect_error());
}
else 
	echo  "connect sucessfully";
?>

上面這種方式裏,直接傳入了我們的數據庫名,而不需要再在php中用sql語句來創建一個數據庫。如果需要用sql語句,則可以:

<?php
$host ="localhost";
$user ="root";
$password ="123456";//密碼

$con =new mysqli($host, $user, $password);

if (mysqli_connect_error()) {
    die("Database connection failed: " . mysqli_connect_error());
}
else 
	echo  "connect sucessfully";<pre name="code" class="php">$sql = "CREATE DATABASE test";
if (mysqli_query($con, $sql)) {
    echo "Database created successfully";
} else {
    echo "Error creating database: " . mysqli_error($conn);
}

mysqli_close($con);
?>



關閉連接:

 $con->close();
接下來就是增刪查改操作了:

 insert 操作:

/****************insert*************************/
$sql ="insert into logininfo (username,password) values(?,?)";
$stmt =$con->prepare( $sql);
$stmt->bind_param("ss", $username, $pass);
//ss表示後面的兩個參數都是string類型的

$username=$_POST['username'];//從前面的表單中獲取post傳遞的參數
$pass =$_POST['password'];

$stmt->execute();//執行插入操作
echo "insert sucessfully";
echo "<br>";
bind_param函數綁定了sql的參數,並且告訴數據庫參數的值。"ss" 參數列處理其餘參數的數據類型。s 字符告訴數據庫該參數爲字符串。

參數有以下四種類型:

  • i - integer(整型)
  • d - double(雙精度浮點型)
  • s - string(字符串)
  • b - BLOB(布爾值)

每個參數都需要指定類型。

通過告訴數據庫參數的數據類型,可以降低 SQL 注入的風險。


select操作:

$sql="select * from logininfo where username='".$_POST['userName']."'";//因爲用戶名是string類型的,所以要加''來
$result=$con->query($sql);
if($result){
    // 輸出每行數據
    while($row = $result->fetch_assoc()) {
       if($row["password"]==$_POST['password'])
        	echo "login sucess";
       else echo "password wrong";
    }
} 
else {
    echo "0 results";
}

delete操作:

//***************delete********************/
$sql ="delete from logininfo where username='zjz'";
//如果不需要和前面的insert操作一樣用佔位符,則可以直接使用query方法
$state =$con->query($sql);
if($state)
	echo "delete sucessfully";
else echo "error";

update操作:

$sql ="update logininfo set password=7724 where username='daming'";
if($con->query($sql)){
	echo "update sucessfully";
}
else 
	echo "error";

用佔位符的方式:

//*******************update2*********************//
$sql ="update logininfo set password=7724 where username=?";
$stmt=$con->prepare($sql);
$name="xiaoming";
$stmt->bind_param("s", $name);
echo "<br><br>";
if($stmt->execute()){
echo "sucessfully";
}
else 
	echo "error";


以上就是簡單的PHP連MySQL的增刪查改操作。


發佈了50 篇原創文章 · 獲贊 9 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章