php第二天 开始连接数据库

时间:2023-03-10 01:35:00
php第二天 开始连接数据库

php连接数据库有三种方法,分别是mysqli面向对象,mysqli面向过程,pdo。

1、查了资料,最终选择则了mysqli面向过程的方式,运行效率应该要高一些。

代码如下

<?php

$servername = "localhost";

$username = "username";

$password = "password";

// 创建连接

$conn = mysqli_connect($servername, $username, $password);

// 检测连接

if (!$conn) {

  die("Connection failed: " . mysqli_connect_error());

}

echo "连接成功";

?>

之前用过,所以很好理解。

2、

// 创建数据库

$sql = "CREATE DATABASE myDB";

if (mysqli_query($conn, $sql)) {

  echo "数据库创建成功";

} else {

  echo "Error creating database: " . mysqli_error($conn);

}

mysqli_close($conn);

?>

第二遍运行会创建同名数据库报错。试一下就得了。

3、

// 使用 sql 创建数据表

$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($conn, $sql)) { echo "数据表 MyGuests 创建成功"; } else { echo "创建数据表错误: " . mysqli_error($conn); }

与创建数据库一样,试一下就得了。

4、

在创建完数据库和表后,我们可以向表中添加数据。

以下为一些语法规则:

  • PHP 中 SQL 查询语句必须使用引号
  • 在 SQL 查询语句中的字符串值必须加引号
  • 数值的值不需要引号
  • NULL 值不需要引号

$sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {

echo "新记录插入成功";

} else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }

可以一次性插入多条语句,像这样:

$sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com');";

$sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com');";

$sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Julie', 'Dooley', 'julie@example.com')";

其实只有一个变量存储了sql语句字符串,用了" . " ,运算符连接字符串。

5、预处理语句教程只有面向对象的,面向过程暂时没试过。

6、查询语句

$sql = "SELECT id, firstname, lastname FROM MyGuests";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {

// 输出数据

   while($row = mysqli_fetch_assoc($result)) {

  echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } }

else { echo "0 结果"; } mysqli_close($conn); ?>