从PDO开始,第一个程序不起作用

时间:2014-02-17 13:52:49

标签: php mysql pdo

我今天开始学习PDO。 这实际上是我的第一个程序,我被困在第一个程序中。

这是一个向数据库添加单个值的简单表单。当我单击提交按钮时,它会而无法执行(errorInfo函数不返回任何内容)

数据库结构

Column    Type
id         int unsigned auto_increment
name       varchar(255)

fillvalues.html

<form action="fillvalues.php" method="post">
<input type="text" name="test">
<input type="submit" name="submit">
</form>

fillvalues.php

<?php

include 'dbconnector.php';
//fill values
var_dump($db);

$sql="INSERT INTO test('name') VALUES ('" . $_POST['test'] . "')";
$smt=$db->query($sql);
if(!$smt)
{
    $ei = $db->errorInfo();
    die('Could not execute because of') . $ei[2];
}
else
{
    echo "Added";
}

var_dump($smt);
var_dump($sql);

?>

dbconnector.php

<?php

try
{
    $db=new PDO("mysql:host=localhost;dbname=pdo",'root','');
}
catch(PDOException $pe)
{
    die('Could not connect to the database') . $pe->getMessage();
}
?>

欢迎任何建议。

2 个答案:

答案 0 :(得分:0)

您的查询中存在语法错误。你不应该用撇号引用列名:

INSERT INTO test(name) VALUES ('" . $_POST['test'] . "')

答案 1 :(得分:0)

如果您使用

,这就是您的陈述
PDO for mysql

$sql="INSERT INTO test(name) VALUES(:myval)";
$smt=$db->prepare($sql);
$smt->bindParam(':myval', $_POST['test'], PDO::PARAM_STR);
$smt->execute();