使用PDO prepare和bindParam插入DB表

时间:2013-10-25 21:36:59

标签: php pdo sqlbindparameter

简单来说,有人可以解释我在这里做错了什么 - 我只是尝试使用prepare和bindParam插入数据库,这是在所有字段中插入0和Null。

$sql = $db->prepare("INSERT INTO db_fruit VALUES (id=? ,type=? ,colour=?)");
$sql->bindParam(1, $newId);
$sql->bindParam(2, $type);
$sql->bindParam(3, $colour);
$sql->execute()

btw:这个方法一直在为UPDATE等工作,但在这种情况下不适用于INSERT

3 个答案:

答案 0 :(得分:12)

扩展A.O的答案,以下内容也有效:

$sql = $db->prepare("INSERT INTO db_fruit (id, type, colour) VALUES (? ,? ,?)");
$sql->execute(array($newId, $name, $color));

$sql = $db->prepare("INSERT INTO db_fruit (id, type, colour) VALUES (:id, :name, :color)");
$sql->execute(array('id' => $newId, 'name' => $name, 'color' => $color));

可能只是个人偏好,但我发现这种语法更清晰。

答案 1 :(得分:8)

您的语法不正确,请尝试以下操作:

$sql = $db->prepare("INSERT INTO db_fruit (id, type, colour) VALUES (? ,? ,?)");
$sql->bindParam(1, $newId);
$sql->bindParam(2, $name);
$sql->bindParam(3, $colour);
$sql->execute();

答案 2 :(得分:0)

<p>Not recommended: <strong><span id="votes" class="label label-success">{{$s->points}}</span></strong></p>