PHP使用Prepare语句插入查询

时间:2015-02-16 07:18:49

标签: php mysql

我创建了一个插入表单。我正在使用prepare语句对MySQL进行插入操作,但它无法正常工作。我不明白什么是错的。请帮我解决这个问题。这是我做的正确吗?

insert.php

<?php

include('dbconn.php');
session_start();
$_SESSION['example']='Session Created';
    $srn = $_POST['srn'];
    $client = $_POST['client']; // required
    $category = $_POST['category'];
    $sd     = $_POST['sd']; // required
    $fd     = $_POST['fd'];

    $host = "localhost";
    $user = "root";
    $pwd  = "root";
    $db   = "eservice";
    $pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pwd);
    $sql = "Insert into main(client,category,sd,fd)             values(:client,:category,:sd,:fd)";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':client',$_POST['client'],PDO::PARAM_STR);
    $stmt->bindParam(':category',$_POST['category'],PDO::PARAM_STR);
    $stmt->bindParam(':sd',$_POST['sd'],PDO::PARAM_STR);
    $stmt->bindParam(':fd',$_POST['fd'],PDO::PARAM_STR);
    $stmt->execute();

?>

dbconn.php

<?php
$host = "localhost";
$user = "root";
$pwd  = "root";
$db   = "eservice";

$mysqli = new mysqli($host,$user,$pwd,$db);
/* ESTABLISH CONNECTION */
if (mysqli_connect_errno()) {
   echo "Failed to connect to mysql : " . mysqli_connect_error();
    exit();
}
?>

1 个答案:

答案 0 :(得分:0)

总是很好地承担你所犯的错误。
您正在使用两种不同的数据库连接类型pdo和mysqli。你只需要一个。

我将你的代码剥离到最低限度。

<?php

$host = "localhost";
$user = "root";
$pwd  = "root";
$db   = "eservice";
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pwd);

//$srn = $_POST['srn'];
$client = $_POST['client']; // required
$category = $_POST['category'];
$sd     = $_POST['sd']; // required
$fd     = $_POST['fd'];

// make sure client and sd are set here

$stmt = $pdo->prepare("
    INSERT INTO
        main 
            (client,category,sd,fd)             
        VALUES
            (:client,:category,:sd,:fd)
");
$success = $stmt->execute([
    'client' => $client,
    'category' => $category,
    'sd' => $sd,
    'fd' => $fd
]);