好的,在我开始之前,我只想说我已经阅读了本网站上与此问题相关的每个答案,但我仍然无法做到正确。我知道PHP抛出了这个错误,因为prepare语句没有返回一个对象。我不知道为什么。这是我的代码:
$stmt = $this->db->prepare("INSERT INTO locations (type, time, street, city, state, country, age, admission, rsvp_limit, keyword1, keyword2, keyword3, description, latitude, longitude, date_posted, member_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, now(), '1')");
var_dump($stmt);
if (!$stmt->bind_param("sssssssiissssdd", $type, $date, $street, $city, $state, $country, $age, $admission, $rsvp, $keyword1, $keyword2, $keyword3, $description, $latitude, $longitude)) {
throw new ErrorException($stmt->error, $stmt->errno);
}
$stmt->execute();
$stmt->close();
以下是发送到此语句的回显值:
TYPE: Party DATE: 1969-12-31 19:12:00 STREET: 50 Barret Parkway CITY: Marietta STATE: Georgia COUNTRY: United States AGE: 25+ ADMISSION: 20 RSVP: 1000 KEYWORD1: key1test KEYWORD2: key2test KEYWORD3: key3test DESCRIPTION: Description test LATITUDE: 33.950500 LONGITUDE: -84.535900
现在请记住,前一个字符串只是一个echo字符串,因此所有大写单词实际上并没有发送到db,只是冒号之后的语句。我已经20次干扰检查数据库,所有拼写都是正确的数据库中的行所有具有足够的空间和正确的类型。
我在过去的5个小时里一直盯着这个问题,一边休息一下,在互联网上搜索答案,我画空白。有人知道发生了什么。如果有任何安慰,我可以手动手动将字段添加到数据库中,并使用$ _GET变量检索它们。