Xin chào tôi có một mẫu trường 70/80 mà tôi cần chèn vào bảng để thay vì tạo thủ công một câu lệnh chèn lớn trước hết tôi đã tạo một bảng trong db của tôi từ tên của các yếu tố đầu vào trong biểu mẫu ở đây là mã mà tôi sử dụng để tạo/thay đổi bảngCập nhật Mysqli ném Gọi tới hàm thành viên bind_param() lỗi
function createTable($array, $memberMysqli)
{
foreach ($array as $key => $value)
{
//echo "<p>Key: ".$key." => Value: ".$value . "</p>";
$query = "ALTER TABLE questionnaire ADD ".$key." text";
if($stmt = $memberMysqli->prepare($query))
{
$success = $stmt->execute();
}
}
echo "<h1>Array count: ". count($array) ."</h1>" ;
}
Điều này làm việc tốt và thay đổi chính xác như tôi muốn. Bây giờ để chèn các giá trị biểu mẫu để làm điều này tôi làm một trường chèn cơ bản lưu trữ id của hàng và sau đó có vòng lặp tất cả các biến đăng cập nhật hàng đó. Đây là mã của tôi cho điều đó:
$stmt = $memberMysqli->prepare("INSERT INTO questionnaire(userid) VALUES (?)");
$stmt->bind_param('s', $_POST['userid']);
$stmt->execute();
$rowid = $stmt->insert_id;
$stmt->close();
$memberMysqli->autocommit(FALSE);
function updateColumn($memberMysqli, $query, $uid, $value)
{
if ($value)
{
$stmt = $memberMysqli->prepare($query);
//Throws bind param error here
$stmt->bind_param("ss", $value, $uid);
$stmt->execute();
}
}
function loopInputs($array, $memberMysqli, $rowid)
{
foreach ($array as $key => $formvalue)
{
var_dump($key);
updateColumn($memberMysqli, "UPDATE questionnaire SET $key = ? WHERE id = ?", $rowid, $formvalue);
}
}
loopInputs($_POST, $memberMysqli, $rowid);
$memberMysqli->commit();
$memberMysqli->close();
Điều này tạo ra lỗi liên kết và tôi không biết tại sao. Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.
Cảm ơn! Đó là một đoạn mã tiện dụng mà tôi nên biết. Vấn đề là khi tôi đã thay đổi bảng nó tạo ra một lĩnh vực 'gửi' và điều này đã gây ra vấn đề về việc cập nhật. – lnelson92