다음은 코드입니다. $ fieldNamesA 및 $ fieldValsA는 POST 변수에서 foreach 루프에서 만들어집니다 여기 PHP mysqli 준비된 삽입 문 실패
$fieldNamesS = implode(',',$fieldNamesA);
$fieldValsS = implode(',',$fieldValsA);
$mysqli = new mysqli('localhost', 'user', 'pw', 'db');
mysqli_report(MYSQLI_REPORT_ALL);
$stmt = $mysqli->prepare('INSERT INTO users (?) VALUES (?)');
if ($stmt === FALSE) {
die ("Mysql Error: " . $mysqli->error);
}
$stmt->bind_param('ss', $fieldNamesS,$fieldValsS);
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
/* close statement and connection */
$stmt->close();
오류 MSG를 수 있습니다 : 뭔가 잘못에 있다는 것을 불평하는 이유
Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?) VALUES (?)' at line 1' in userreg.php:47
Stack trace:
#0 userreg.php(47): mysqli->prepare('INSERT INTO use...')
#1 {main}
thrown in /userreg.php on line 47
이해가 안 내 insert 문. 열/필드 이름을 하드 코드하면 열의 수가 값의 수와 일치하지 않는다는 오류가 발생합니다.이 값은 올바르지 않습니다. 나는 확실히 변수를 var_dumped했고 그들은 같은 수의 매개 변수를 가지고있다.
나는 열 이름을 하드 코드했는데, 값의 수가 열을 일치시키지 않았다는 오류가 발생했다.이 열은 체크되고 두 번 잘못되었다는 것을 발견하지 못했다. – hornswoggle
각 열에 대해 하나의 자리 표시자가 있는지 확인하고 있습니까 (위의 Chris Hanson의 답변 참조). – Drew