我今天开始学习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();
}
?>
欢迎任何建议。
答案 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();