我在网上搜索过但没有运气。 我是SQLSRV的新手,我从PHP MySQL迁移到PHP SQL,并且在从表单插入数据时遇到问题,因为某些字段是可选的,这使得列号变化。当列号变化时,我需要有关如何插入的帮助。 谢谢 这是我的插入代码的样子
// sql fields and values for main table
$in_fields = array();
$in_values = array();
// prepare insertion
foreach ($_POST as $key => $value) {
if (!empty($value)) {
$value = sql_escape($value);
$in_fields[] = "[{$key}]";
$in_values[] = "'{$value}'";
}
}
// prepare sql stmt
if (!empty($in_fields)) {
$sql = "INSERT into [table_name](";
$sql .= implode(", ", $in_fields);
$sql .= ") VALUES ()";
if (executeSql($sql, $in_values)) {
$success = "Successfully Added New Record";
}
}
executeSql函数看起来像这样
function executeSql($sql, $params) {
global $conndb;
$rs = sqlsrv_query($conndb, $sql, $params)or die("Db query error.<br />".print_r(sqlsrv_errors(), true));
return !$rs ? false : true;
}
答案 0 :(得分:0)
您需要在查询的?
部分添加占位符值(VALUES
),您需要为您传递的每个值添加一个占位符 - 即$in_values
中的每个值
要做到这一点,你可以有另一个数组,它只有?
个值作为值,然后就像你为字段所做的那样,将implode
数组放入{{1} }}。像这样:
VALUES