그래서 값을 사용할 배열이 데이터베이스에 삽입되는 메소드에 전달됩니다. 내 문제는 매개 변수가 바인딩되는 방식입니다.PHP로 복수 값을 PHP로 삽입하기
public function insertValues($table, $cols, $values)
{
$mysqli = new mysqli(DBHOST, DBUSER, DBPASSWORD, DBDATABASE);
$colString = implode(', ', $cols); // x, x, x
$valString = implode(', ', array_fill(0, count($values), '?')); // ?, ?, ?
$sql = "INSERT INTO $table ($colString) VALUES($valString)";
if (!$stmt = $mysqli->prepare($sql))
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
// THIS IS THE PROBLEM AREA
foreach ($values as $v)
if (!$stmt->bind_param('s', $v))
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
if (!$stmt->execute())
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
$stmt->close();
$mysqli->close();
}
은 내가 생각 한 번에 모든 매개 변수를 결합하는 방법이 필요하고, 한 번에하지 한, 그러나 나는이 작업을 수행 할 수있는 유용한 방법을 알아낼 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.
실제 문제는 무엇입니까? 문서를 읽는 것을 기본으로, 내가 직접 테스트 할 곳은 없지만 올바른 작업을 수행해야합니다. – siride
한 번에 여러 var를 바인딩 할 수 있지만, 경우에 따라 var 수를 모르기 때문에 최선의 방법은 반복하는 것입니다. 당신의 솔루션이 잘 작동하고 있습니까? 그렇지 않다면,'foreach ($ index => $ v)'를 쓰고'$ stmt-> bind_param ('s', $ values [$ index])'를 바인드하려고 했습니까? – MatRt