0

好的,在我开始之前,我只想说我已经阅读了该网站上与此问题有关的所有答案,但我仍然无法正确理解。我知道 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

现在请记住,前一个字符串只是一个回显字符串,因此所有大写的单词实际上并没有发送到数据库,只是冒号后面的语句。我已经检查了 20 次数据库,所有的拼写对数据库中的行都是正确的,并且都有足够的空间和正确的类型。

在过去的 5 个小时里,我一直盯着这个问题,一边休息一边在网上搜索答案,然后我画了个空白。有谁知道怎么回事。如果有任何安慰,我可以手动手动将字段添加到数据库中,并使用 $_GET 变量检索它们就好了。

4

0 回答 0