php怎么实现多对一通讯录

PhpPhp 2023-08-28 20:04:06 619
摘要: PHP可以通过使用数据库操作、面向对象编程等方式来实现多对一的通讯录。其中,多对一是指多个联系人对应一个用户(通讯录拥有者)。实现方法是:创建两张数据库表,一张用于存储用户信息,包括用户名、密码等,另一张用于存储联系...

PHP可以通过使用数据库操作、面向对象编程等方式来实现多对一的通讯录。其中,多对一是指多个联系人对应一个用户(通讯录拥有者)。

实现方法是:创建两张数据库表,一张用于存储用户信息,包括用户名、密码等,另一张用于存储联系人信息,包括姓名、电话号码等。在联系人表中添加一个外键字段,指向用户表中的主键。这样,一个用户可以对应多个联系人。

好处:

  • 可以方便管理和维护联系人信息。

  • 可以提高数据安全性,避免联系人信息被其他用户访问或篡改。

  • 便于扩展和优化。

代码示例:下面的代码演示了如何使用PDO(PHP Data Objects)来实现基本的多对一通讯录功能。

```php
// 创建数据库连接
$db = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'username', 'password');
// 新增用户
$stmt = $db->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$username = 'user1';
$password = 'pass1';
$stmt->execute([$username, $password]);
$user_id = $db->lastInsertId(); // 获取新用户的ID
// 新增联系人
$stmt = $db->prepare("INSERT INTO contacts (name, phone, user_id) VALUES (?, ?, ?)");
$name = 'contact1';
$phone = '1234567890';
$stmt->execute([$name, $phone, $user_id]);
// 查询联系人
$stmt = $db->prepare("SELECT * FROM contacts WHERE user_id = ?");
$user_id = 1; // 假设要查询用户ID为1的联系人
$stmt->execute([$user_id]);
$contacts = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($contacts as $contact) {
    echo "Name: {$contact['name']}, Phone: {$contact['phone']}\n";
}
```