Heroku项目使用PostgresSql数据库和PHP插入

时间:2018-06-10 17:00:04

标签: php postgresql heroku

我第一次使用简单的项目尝试了Heroku。 我的目标是拥有一个PHP Formular,它在PostgreSQL数据库中插入一个名称。

我尝试过其他教程,但仍然无法正常使用。

这是index.php

中的公式
<form id="guestbook-form" action="" method="post">
  Name:<br>
  <input type="name" size="40" maxlength="250" name="name"><br><br>
  <input id="submit" type="submit" value="Send">
</form>

这是我在index.php

顶部的数据库插入
<?php
if(isset($_POST['name'])) {
$name = $_POST["name"];
$sql = 'INSERT INTO users (name) VALUES (?)';
$sql->bind_param("s", $name);
$stmt = $pdo->prepare($sql);
$stmt->execute();
// $rowCount = $stmt->rowCount();
// $details = $stmt->fetch();
try {
  $stmt->execute();
} catch (PDOException $e) {
  $e->getMessage();
  }
}
?>

所有数据库变量(如dbname,user,password ...)都在单独的db.php文件中定义:

<?php

$host = "secret";
$user = "secret";
$password = "secret";
$dbname = "secret";
$port = "secret";

try{
 //Set DSN data source name
    $dsn = "pgsql:host=" . $host . ";port=" . $port .";dbname=" . $dbname .";user=" . $user . ";password=" . $password . ";";


 //create a pdo instance
 $pdo = new PDO($dsn, $user, $password);
 $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_OBJ);
 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>

在cmd提示符下我创建了2个Database isnerts,页面上只显示了1个,当我尝试创建一个新的Insert时,该站点崩溃了。

有人知道解决方案吗?

编辑:我做到了! 有几个错误......

<form id="guestbook-form" action ="<?php echo ROOT_URL; ?>" method="get">

   $stmt = $pdo->prepare("INSERT INTO users (name)VALUES (:name)");
   $stmt->bindParam(':name', $name);
   $name = $_GET["name"];

现在有效!

0 个答案:

没有答案