gpt4 book ai didi

PHP MYSQL 无法在表中存储对象属性

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

我正在尝试添加迭代对象并将这些对象属性添加到 mysql 数据库。使用:

//This works
$sql = "CREATE TABLE $table ($ID int primary key auto_increment not null)";
mysql_query($sql);
//This works
function iterateObject($obj, $name='') {
foreach ($obj as $key=>$val) {
$myName = ($name !='') ? $name . "_" . $key : $key;
if ( is_object($val) || is_array($val) ) {
iterateObject($val, $myName);
} else {
//This works
$sql = ("ALTER TABLE home_timeline ADD COLUMN $myName VARCHAR(256);");
mysql_query($sql);

//This doesn't work
$sql2 = ("INSERT INTO home_timeline ($myName) VALUES ($val);");
mysql_query($sql2);
print "$myName - $val <br />";
}
}
}

表被创建和更改,以便每次迭代都会向表中添加一个新列,但是当我尝试向该列添加值(第二个 sql 语句)时,所有内容都为空,并且脚本创建了 20 多行,而不是拥有所有值显示在相关列的一行上。有人可以帮忙吗?

最佳答案

在对象与字符串之间进行转换时,为什么不使用 serialize()unserialize() 等函数?

第二:如果$val是字符串,则在查询中放置字符串分隔符

"INSERT INTO home_timeline (`$myName`) VALUES ('$val');"

尽管通过串联插入参数是一种非常糟糕的做法,容易导致 SQL 注入(inject)。

如果您还有其他问题,请在执行之前输出查询并将其放在此处。当您有很多不能为空且没有默认值的列时,您可能会遇到这种情况。在这里还输出表结构。

关于PHP MYSQL 无法在表中存储对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989852/

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