Website.(PHP) 삽입 된 데이터는 "배열"이것은 일반적인 문제 같은 느낌
로 MySQL에 나타납니다,하지만 구글에 어려운 일입니다!
코드의 주석에서 설명한대로 값을 삽입하는 것은 이전에는 문제가 아니었지만 그 아래에 추가 INSERT
쿼리를 추가했을 때 작동을 멈췄습니다. 당신의 웹 사이트에
$user = $_POST['name'];
$night = $_POST['club'];
$query = mysql_query("SELECT day FROM nights WHERE name = '$night'");
$email = $_POST['email'];
while ($row = mysql_fetch_assoc($query)) {
$date = getFullDateString($row['day']);
$date2 = getDateString($row['day']);
}
// this one previously worked but now enters into the database with $user as "Array"
mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$user', '$night', '$date') ") or die(mysql_error());
$guest1 = $_POST['name1'];
$guest2 = $_POST['name2'];
// these were added later and work fine but seem to have had an effect on the query above
mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$guest1', '$night', '$date') ") or die(mysql_error());
mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$guest2', '$night', '$date') ") or die(mysql_error());
foreach ($_POST as $key){
if (is_array($key)){
foreach ($key as $key2 => $value){
mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$value', '$night', '$date') ") or die(mysql_error());
}
}
}
4 개의 인서트 중 지금 어떤 작업을하고 있습니까? –
$ value is_array를 사용하여 배열을 검사합니다. 그리고 당신의 코드는 mysql 인젝션을 요구합니다. –
오, 안돼, SQL 주입! 귀하의 코드는 공격에 매우 취약합니다. mysql_real_escape_string 또는 더 나은 PDO를 사용하십시오. – kapa