iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
0

PHP連結mySQL : php程式建立與mySQL伺服器的連結 ,有兩種方式。

  • mysql_connect
  • PHP PDO

student 表格 :
id |name | gender | phone
------------- | -------------
00001 | John | man | 0911111111
00002 | Gigi | woman |0922222222
00003 | David | man |0933333333
00004 | Neymar | man |09444444444
00005 | Kate | woman |0955555555

mysql_connect 範例:

連接資料庫:('資料庫名稱' , 'user' , 'password')

<?php 
    $sql = @mysqli_connect('localhost','root','root');
?> 

資料庫資料綁定:新增一筆資料加入student表格。

<?php 
    $query = $sql ->prepare("INSERT INTO student VALUES (?, ?, ?, ?)") ;
    $query -> bind_param('issi', $id, $name, $gender, $phone);
    $id = 00006;
    $name = 'Lily';
    $gender = 'woman';
    $phone = 0966666666;
    if ($query->execute()) {
        echo "Insert Success!";
     } else {
        echo $stmt->error;
     }
?>
  • prepare( ):準備SQL的指令。
  • bind_param( ):根據欄位資料設定變數,'issi' 表示 int string string int。
    i : integer
    d: double
    s: string
  • excute( ) : 執行敘述。

PHP PDO範例:

連接資料庫:('資料庫名稱' , 'user' , 'password')

<?php 
   $pdo = new PDO("mysql:host=localhost;dbname=student",'root','root');
?>

資料庫資料綁定:新增一筆資料加入student表格。

<?php 
    $idInput= 00006;
    $nameInput= 'Lily';
    $genderInput = 'woman';
    $phoneInput = 0966666666;
    $query ="INSERT INTO student(id,name,gender,phone) VALUES(:id,:name,:gender,:phone)";
    $stmt = $pdo->prepare($query);
    $stmt->bindParam(":id", $idInput);
    $stmt->bindParam(":name", $nameInput);
    $stmt->bindParam(":gender",  $genderInput);
    $stmt->bindParam(":phone",  $phoneInput);
    if ($stmt->execute()) {
        echo "Insert Success!";
     } else {
        echo $stmt->error;
     }
    ?> 

依照要使用的資料SQL,設定$query內容。

(補充)錯誤處理:
當mysql連線錯誤時,可以呼叫函數,可以進一步了解錯誤資訊。

  • mysqli_error()
  • mysqli_errno()
  • mysqli_connect_error()
  • mysqli_connect_errno()

參考資料:
https://www.php.net/manual/en/mysqli-stmt.bind-param.php
https://www.itread01.com/content/1553592309.html


上一篇
Day24-MySQL(3)
下一篇
Day26-Session & Cookie
系列文
PHP入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言