gpt4 book ai didi

php - 使用 PHP mysqli 进行灵活的 "INSERT INTO"查询的方法?

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

好吧,这会有点复杂。

但现在我正在使用一个自制的函数来创建一个查询,用于创建将页面插入到数据库中。

我想知道是否有更聪明的方法来执行灵活的“插入”方法。

问题是我有一些字段在创建页面时是可选的,所以现在我正在使用它来运行所有字段并检查它们是否已设置。 :

//creates an Array which can be used to make a MySQL query
function createQueryArray($new) {
if (isset($this->users_id))
$this->query_array['users_id'] = mysql_real_escape_string($this->users_id);
if (isset($this->pagename))
$this->query_array['pagename'] = mysql_real_escape_string($this->pagename);
if (isset($this->seo_pagetitle))
$this->query_array['seo_pagetitle'] = mysql_real_escape_string($this->seo_pagetitle);
if (isset($this->seo_description))
$this->query_array['seo_description'] = mysql_real_escape_string($this->seo_description);
if (isset($this->seo_keywords))
$this->query_array['seo_keywords'] = mysql_real_escape_string($this->seo_keywords);
if (isset($this->seo_robots))
$this->query_array['seo_robots'] = mysql_real_escape_string($this->seo_robots);
if (isset($this->seo_canonical))
$this->query_array['seo_canonical'] = mysql_real_escape_string($this->seo_canonical);
if (isset($this->type))
$this->query_array['page_type'] = mysql_real_escape_string($this->type);
//$this->query_array['last_edited'] = date("Y-m-d H:i:s");
}

然后我用数组和我想插入页面的表调用这个函数:

function createInsertStm($arr, $table) {
$mysqlQuery = ("INSERT INTO $table (");
$insert = "";
$values = "";
if (is_array($arr))
foreach ($arr as $key => $value) {
if ($insert == "")
$insert .= $key;
else
$insert .= ', ' . $key;
if ($values == "")
$values .= (preg_match('/(MAX\(id\))(.*?)/', $value)) ? $value : '"' . $value . '"';
else
$values .= (preg_match('/(MAX\(id\))(.*?)/', $value)) ? "," . $value : ',"' . $value . '"';
}
$mysqlQuery .= $insert;
$mysqlQuery .= ') VALUES (';
$mysqlQuery .= $values;
$mysqlQuery .= ')';
return $mysqlQuery;
}

$db->query($queryArray["pages"]);

是否可以使用准备好的语句然后跳过一些字段或类似的东西?

最佳答案

如果您在表定义中设置了默认值,那么您可以在插入时省略该值。

查看以下页面以获取有关默认值的更多信息:

http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

关于php - 使用 PHP mysqli 进行灵活的 "INSERT INTO"查询的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13482299/

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