gpt4 book ai didi

php - 使用 php 从 mySQL 数据创建实例

转载 作者:行者123 更新时间:2023-11-29 13:44:03 25 4
gpt4 key购买 nike

如何使用 PHP 从 mySQL 数据传播对象实例的变量?这是我的伪代码对象:

exam:{
questions:[
question:{
questionID: string
questionTest: string
categoryID: string
correctAnswerID: string
chosenAnswerID: string
answers:[
answer:{
answerID = string
answerText = string
isTrue = bool
}
answer:{}
]
}
question:{}
]
categoryID: string
}

以下是对应的类(语法很有可能是错误的,我是php新手):

class ExamClass
{
// property declaration
public $questions = 'a default value';
public $categoryID = 'a default value';
}

class QuestionClass
{
// property declaration
public $questionID = 'a default value';
public $questionTest = 'a default value';
public $categoryID = 'a default value';
public $correctAnswerID = 'a default value';
public $chosenAnswerID = 'a default value';
public $answers = 'a default value';
}

class AnswersClass
{
// property declaration
public $answerID = 'a default value';
public $answerText = 'a default value';
public $isTrue = 'a default value';
}

这是从数据库中提取数据的 php 代码:

<html>
<body>

<?php
/*

exam:{
questions:[
question:{
questionID: string
questionTest: string
categoryID: string
correctAnswerID: string
chosenAnswerID: string
answers:[
answer:{
answerID = string
answerText = string
isTrue = bool
}
answer:{}
]
}
question:{}
]
categoryID: string
}

*/

class ExamClass
{
// property declaration
public $questions = 'a default value';
public $categoryID = 'a default value';
}

class QuestionClass
{
// property declaration
public $questionID = 'a default value';
public $questionTest = 'a default value';
public $categoryID = 'a default value';
public $correctAnswerID = 'a default value';
public $chosenAnswerID = 'a default value';
public $answers = 'a default value';
}

class AnswersClass
{
// property declaration
public $answerID = 'a default value';
public $answerText = 'a default value';
public $isTrue = 'a default value';
}


header('Content-Type: text/html; charset=utf-8');
$con=mysqli_connect("localhost","root","root","Theory");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT `questions`.`questionID` AS questionID,
`questions`.`questionText` AS questionText,
`questions`.`categoryID` AS categoryID,
`answers`.`answerID` AS answerID,
`answers`.`answerText` AS answerText,
`answers`.`isTrue` AS isTrue
FROM `questions`,`answers`
WHERE `questions`.`questionID` = `answers`.`questionID`
AND `questions`.`categoryID` = 2");

if (!$result)
{
die('Error: ' . mysqli_error($con));
}

$rows = array();
while($r = mysqli_fetch_assoc($result)) {
$rows[] = $r;
}
print json_encode($rows);

mysqli_close($con);
?>

</body>
</head>

这就是当前提取的数据的样子:

[
{
"questionID": "2",
"questionText": "question text 2",
"categoryID": "2",
"answerID": "1",
"answerText": "answer text 1",
"isTrue": "0"
},
{
"questionID": "2",
"questionText": "question text 2",
"categoryID": "2",
"answerID": "2",
"answerText": "answer text 2",
"isTrue": "1"
},
{
"questionID": "2",
"questionText": "question text 2",
"categoryID": "2",
"answerID": "3",
"answerText": "answer text 3",
"isTrue": "0"
},
{
"questionID": "2",
"questionText": "question text 2",
"categoryID": "2",
"answerID": "4",
"answerText": "answer text 4",
"isTrue": "0"
}
]

最佳答案

从您的评论来看,您似乎在问如何使用数据库中的数据水合这些对象。不要从数据库转到 JSON,再转到对象,而是查看 mysqli_fetch_object .

使用mysqli_fetch_object(),您可以指定一个类来使用查询中的数据进行初始化。对于您的情况:

$result = mysqli_query('SELECT * FROM Answers;');
while ($answer = mysqli_fetch_object($result, 'AnswersClass')) {
var_dump($answer);
}

注意:我今天已经回答了您的其他问题之一,看来您正在开始解决其中的一些问题。我鼓励您阅读 Data MapperActive Record模式。

关于php - 使用 php 从 mySQL 数据创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684510/

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