【发布时间】:2015-05-20 19:36:06
【问题描述】:
让我先说一下,我刚刚开始学习准备好的陈述,其中很多内容可能难以掌握,但我想尝试一下。
我正在尝试在我的 DatabaseObject 类中创建一个动态创建函数。该函数将采用可能任意数量的不同允许数据类型的任意数量的值。不幸的是,我尝试过的任何事情都没有奏效。这是代码。
public function create() {
$db = Database::getInstance();
$mysqli = $db->getConnection();
//array of escaped values of all types in the object
$attributes = $this->sanitized_attributes();
$check = $mysqli->stmt_init();
$paramType = array();
$types = ''; $bindParam = array(); $where = ''; $count = 0;
foreach($attributes as $key=>$val)
{
$types .= 'i';
$bindParam[] = '$p'.$count.'=$param["'.$key.'"]';
$where .= "$key = ? AND ";
$count++;
}
$sql_query = "INSERT INTO `".static::$table_name."` ";
$sql_query .= "VALUES (";
foreach ($attributes as $key => $value) {
$valueType = gettype($value);
if ($valueType == 'string') {
$sql_query .= "?,";
array_push($paramType, "s");
} else if ($valueType == 'integer') {
$sql_query .= "?,";
array_push($paramType, "i");
} else if ($valueType == 'double') {
$sql_query .= "?,";
array_push($paramType, "d");
} else {
$sql_query .= "?,";
array_push($paramType, "b");
}
}
$sql_query .= ")";
}
在这一点上,我完全不知道我应该做什么。
我已经得到了简单的准备好的语句,但是这个更复杂和动态,我不知道我是否正确地处理了这个过程,以及在 sql_query 之后做什么才能得到这个工作。这里的所有问题都让我感到困惑,所以如果我得到有关我当前代码的指导,看看我哪里出错了,它会有所帮助。
感谢您的宝贵时间。
【问题讨论】:
标签: php mysqli prepared-statement