[英]Updating multiple MySQL table using arrays with PDO
与使用带有 PDO 的数组更新多个 MySQL 表列非常相似。
但我使用了一个复杂的形式
<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 array 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);
我认为这段代码可以帮助你
$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;
}
$servername = "localhost";
$username = "";
$password = '';
$dbname = "";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,
$password);
$variable = buildBindedQuery($data2);
$variable2 = explode(",", $variable);
foreach($variable2 as $var) {
$va = explode("=", $var);
$query = "UPDATE usuario SET $va[0]='". $va[1] ."' WHERE id=2";
$result = $conn->prepare($query);
$result->execute();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.