gpt4 book ai didi

php - 对象 PHP 和 MYSQL 查询

转载 作者:行者123 更新时间:2023-11-29 12:20:23 25 4
gpt4 key购买 nike

我正在使用面向对象的php来体验mysql,因此我创建了一个数据库,其中只有一张名为users的表,我想使用php类来查询该表(插入功能正常工作)

这是我的 php 用户类:

<?php
class user{
var $name;
var $surname;
var $email;
var $age;
function set_user_properties($pname, $psurname, $pemail, $page){
include "include.php";
$sql = "INSERT INTO users (name, surname, email, age)
VALUES ('$pname', '$psurname','$pemail', '$page')";

if ($conn->query($sql) === TRUE){
echo "New record created successfully";
}else{
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
function get_user_properties($name){
include "include.php";
$sql3 = "SELECT name, surname, email, age
FROM users
WHERE name='$name'";
$result3 = $conn->query($sql3);
if ($result3->num_rows > 0) {
// output data of each row
while($row3 = $result3->fetch_assoc()) {
$this->name=$row3["name"];
$this->surname=$row3["surname"];
$this->email=$row3["email"];
$this->age=$row3["age"];
}
}
$conn->close();
return $this;
}
}
?>

这是我想要读取所有查询结果的页面:

<?php

include("class_lib.php");

$pname=$_POST["firstname"];

$user1=new user();
$user1->get_user_properties($pname);
echo $user1->name;
echo $user1->surname;
echo $user1->email;
echo $user1->age;

?>

我的问题是:当我进行的查询应该有多个结果(如这个)时,我如何将所有结果传递到目标页面?

最佳答案

问题是您的类仅存储一个用户的信息,这意味着您不能真正期望它同时存储多个用户。

所以问题是:“如何获得一组用户而不是一个?”答案是创建一个执行数据库查询并将查询结果的每一行解析为用户对象的类

引用这部分代码:

while($row3 = $result3->fetch_assoc()) {
$this->name=$row3["name"];
$this->surname=$row3["surname"];
$this->email=$row3["email"];
$this->age=$row3["age"];
}

如果您向用户类添加构造函数来实例化具有姓名、电子邮件和年龄的用户,则最终您的数据库类中的代码可能更像以下内容

$users = array();
...
while($row3 = $result3->fetch_assoc()) {
$users[] = new user($row3["name"],
$row3["surname"],
$row3["email"],
$this->age=$row3["age"]);
}
...
return $users;

我希望这是有道理的。

关于php - 对象 PHP 和 MYSQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com