我使用foreach循环将数据插入到我的mysql表中时一直插入多行。
foreach($event as $booking){
$startDate = $booking[DTSTART];
$checkIn = strtotime($startDate[value]);
$check_in = date("Y-m-d", $checkIn);
$endDate = $booking[DTEND];
$checkOut = strtotime($endDate[value]);
$check_out = date("Y-m-d", $checkOut);
$booking_source = "Airbnb";
$source_id = "2";
$summary = $booking[SUMMARY];
$description = $booking[DESCRIPTION];
$uid = $booking[UID];
$sql = "INSERT INTO test_ics (uid, check_in, check_out, summary, description, source, source_id) VALUES (?,?,?,?,?,?,?)";
$result = $conn->prepare($sql);
$result->bind_param('sssssss', $uid, $check_in, $check_out, $summary, $description, $booking_source, $source_id);
$result->execute();
echo "<br>";
echo "$check_in";
}
当我从表description
中移除summary
和VARCHAR(2550)
字段时,代码工作正常并插入所有行,但是当我尝试运行代码时插入description
和summary
的行(就像上面的代码一样),只插入10行。
由于
注意:使用未定义的常量DTSTART - 在第40行的/home/fadipro/public_html/admin/get-airbnb-bookings.php中假定为“DTSTART”
注意:使用未定义的常量值 - 在第41行的/home/fadipro/public_html/admin/get-airbnb-bookings.php中假定为'值'
注意:使用未定义的常量DTEND - 在第45行的/home/fadipro/public_html/admin/get-airbnb-bookings.php中假设为“DTEND”
注意:使用未定义的常量值 - 在第46行的/home/fadipro/public_html/admin/get-airbnb-bookings.php中假定为'value'
注意:使用未定义的常量摘要 - 假设第54行/home/fadipro/public_html/admin/get-airbnb-bookings.php中的“摘要”
注意:使用未定义的常量描述 - 在第56行的/home/fadipro/public_html/admin/get-airbnb-bookings.php中假定为'DESCRIPTION'
注意:使用未定义的常量UID - 在第58行的/home/fadipro/public_html/admin/get-airbnb-bookings.php中假定为“UID”
答案 0 :(得分:1)
您可以通过将字符串索引放在引号中来删除通知,例如这个$booking['DTSTART']
。
为了捕获数据库错误,我假设您使用异常来报告它们。此代码捕获并打印异常:
try {
$result = $conn->prepare($sql);
$result->bind_param('sssssss', $uid, $check_in, $check_out, $summary, $description, $booking_source, $source_id);
$result->execute();
}
catch (Exception $e)
{
echo $e->getMessage();
}
我的猜测是它会显示该列太长的数据。
答案 1 :(得分:1)
如果你的字段名称不是常数,那么你必须用单引号
来编写它foreach($event as $booking){
$startDate = $booking['DTSTART'];
$checkIn = strtotime($startDate['value']);
$check_in = date("Y-m-d", $checkIn);
$endDate = $booking['DTEND'];
$checkOut = strtotime($endDate['value']);
$check_out = date("Y-m-d", $checkOut);
$booking_source = "Airbnb";
$source_id = "2";
$summary = $booking['SUMMARY'];
$description = $booking['DESCRIPTION'];
$uid = $booking['UID'];
$sql = "INSERT INTO test_ics (uid, check_in, check_out, summary, description, source, source_id) VALUES (?,?,?,?,?,?,?)";
$result = $conn->prepare($sql);
$result->bind_param('sssssss', $uid, $check_in, $check_out, $summary, $description, $booking_source, $source_id);
$result->execute();
echo "<br>";
echo "$check_in";
}