gpt4 book ai didi

php - 如何将 PHP 对象转储到 SQL 表中?

转载 作者:行者123 更新时间:2023-11-29 11:07:54 26 4
gpt4 key购买 nike

我想知道是否有一种快速方法可以执行以下操作:

我有一个具有多个属性的 PHP 对象。例如

$person;
$person->height = 165;
$person->name = 'john';

我想将其转储到 SQLite MySQL 数据库中,同时根据 PHP 对象的属性名称自动创建每一列。例如,如果我将上面的对象转储到 mySQL 中,它将看起来像这样:

Table : people
Name(Column, VARCHAR) - "John"
Height(Column, INT) - 165

我问这个问题的原因是因为属性的数量不断增长,并且必须手动创建和管理表列是一项繁重的工作。我想知道是否有一种自动化的方法可以做到这一点。

最佳答案

首先,您需要将object转换为array,然后您可以迭代它并可以创建tableinsert 其中的值。

如下所示:

第 1 步:转换 object to array

第 2 步:从数组中获取键(字段)和值

第3步:生成sql查询

    <?php
//Step 1: convert object to array
//$persion = (array) $yourObject;

//Step 2: get keys(fields) and values out of array
$person = array(
"height" => "165",
"name" => "john",
"age" => "23"
);

function data_type($val) {
if(is_numeric($val)) {
return "int";
}
else {
return "varchar(15)";
}
}

//Step 3: sql query, only including sql query
function create_table($person) {
$create = "CREATE TABLE IF NOT EXISTS people";
$ctr = 0;
foreach($person as $key => $value) {
if($ctr == 0) {
$field_query = $key." ".data_type($value);
} else {
$field_query .= ", ".$key." ".data_type($value);
}
$ctr++;
}
echo $create .= " (".$field_query.")";
echo "<br/>";
}
create_table($person);

function insert_table($person) {
$ctr = 0;
foreach($person as $key => $value) {
if($ctr == 0) {
$field_query = $key;
$value_query = $value;
} else {
$field_query .= ", ".$key;
$value_query .= ", ".$value;
}
$ctr++;
}
echo $insert = "INSERT INTO people"." (".$field_query.") VALUES (".$value_query.")";
}
insert_table($person);

?>

希望这能在某种程度上帮助您。

关于php - 如何将 PHP 对象转储到 SQL 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094941/

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