【发布时间】:2018-12-31 23:18:48
【问题描述】:
非常类似于Updating multiple MySQL table columns using arrays with PDO。
但我使用了复杂的形式
<input name="data[Name]" type="text" more stuff>
更新只是给我一个没有错误的空白页面???
注意:使用 MySQLi 并且工作正常,只是更新到 PDO。
$data2 返回了一个正确的数组。
这可能是订单吗? IE 输出必须匹配列顺序?
结合https://guwii.com/bytes/update-multiple-database-columns-using-pdo/分析了Updating multiple MySQL table columns using arrays with PDO
*****已更新******
$data = $_POST[data];
$data1 = array(ARRAY INFO HERE);
$data2 = array_merge($data, $data1);
function buildBindedQuery($fields){
end($fields);
$lastField = key($fields);
$bindString = ' ';
foreach($fields as $field => $data2){
$bindString .= $field . '=:' . $field;
$bindString .= ($field === $lastField ? ' ' : ',');
}
return $bindString;
}
$query = 'UPDATE details SET '.buildBindedQuery($data2).' WHERE id='.$_POST['id'].'';
$result = $conn->prepare($query);
$result->execute($data2);
【问题讨论】:
-
多余的空格应该去掉;他们确实算你知道的。另外,您还有额外的引号需要删除。
-
对sql注入也是开放的;为此使用准备好的语句。
-
哇!!删除了空格并修复了额外的引号!!谢谢你。我现在将尝试使用表单数据和数组扩展我对 PDO 准备语句的了解
-
欢迎,干杯
-
另外,代码格式化对你有很大帮助。我建议使用适当的缩进等来格式化您的代码。