PDO插入数据库

时间:2014-04-10 06:08:10

标签: php mysql pdo

我看过很多教程,有很多不同的方法可以使用PDO插入。它们似乎都不适合我。似乎无法让我的数据库发送到我的数据库。我没有问题使用FETCH连接和检索数据,但似乎无法发布此数据。

任何有关让我的帖子工作并使用标题或元刷新重定向的帮助都会很好。我是来自html表单的$ _POST。连接到数据库工作正常,但无法获取数据。

   $hostdb = 'myremoteip';
   $namedb = 'cpdemo';
   $userdb = 'root';
   $passdb = 'mypassword';

   $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);

   if(isset($_POST['fname'])) {

         $fname = $_POST['fname'];
         $lname = $_POST['lname'];
         $title = $_POST['title'];
         $photo = $_POST['photo'];

   $stmt = "INSERT INTO row_users (fname,lname,title,photo) 
         VALUES (:first,:last,:title,:photo)";

   $q = $conn->prepare($stmt);
   $results = $q->execute(array(
        ":first"=>$fname,
        ":last"=>$lname,
        ":title"=>$title,
        ":photo"=>$photo
    ));
    echo 'User Added<br/>';
    }

      header ('Location:../insertUser.html');
    exit();

3 个答案:

答案 0 :(得分:2)

您必须了解没有这样的东西,例如“PDO Insert Into DB”

有INSERT查询,与PDO无关,但与您正在使用的数据库有关 并且有PDO准备语句,与查询类型无关。无论是插入还是删除,都必须遵循完全相同的模式。

所以 - 你只需要一本关于PDO准备语句的教程。就这样。最好是一个教您启用错误报告的人。

答案 1 :(得分:1)

根据OP的要求,评论会得到答案(关闭问题并标记为已解决)。

我按“原样”测试了你的代码,它运行正常。

我唯一可以告诉的问题是,除非符合您设置的条件语句if(isset($_POST['fname']))

,否则您的插入不会发生

检查您的HTML表单的元素是否确实已命名?

即。 <input type="text" name="fname">等。如果其中一个未命名或有拼写错误,那么您的整个查询将失败。

答案 2 :(得分:0)

您可以在将参数传递给执行之前尝试绑定参数,例如在下面的代码

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>