如何将数据插入mySQL数据库中的特定行?

时间:2015-08-07 07:46:53

标签: mysql pdo

我想在我的SQL数据库中插入数据:

try {
                    $pdo = Database::connect();
                    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                    $sql = "INSERT INTO animals (size) values(?) WHERE id = '$name'";

                    $q = $pdo->prepare($sql);

                    foreach($animalarray as $row) {

                    if (array_key_exists('size',$row)){

                    $q->execute(array($row['size']));
                    }
                    }
                    }
                    catch (PDOException $pe) {
                    echo $pe->getMessage();
                    }
                    catch (Exception $e ) {
                    echo $e->getMessage();
                    }
                    Database::disconnect();

但是我收到错误消息: SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便使用“' WHERE id =' horse''''''''''在第1行

我根据G_hi3的答案更新了我的代码。现在它有效。我的错误是我尝试使用INSERT而不是UPDATE:

                try {
                    $pdo = Database::connect();
                    $update_animal = "UPDATE animals SET size='$size' WHERE id = '$name'";
                    $sql = $pdo->prepare($update_animal);
                    $sql->execute();

                    }
                    catch (PDOException $pe) {
                    echo $pe->getMessage();
                    }
                    catch (Exception $e ) {
                    echo $e->getMessage();
                    }
                    Database::disconnect();

1 个答案:

答案 0 :(得分:1)

您使用UPDATE语句,例如:
UPDATE myTable SET nameColumn = 'Forrest Gump' WHERE idColumn = 15;

您可以使用一个语句设置多个列,并使用WHERE子句,就像使用常规SELECT语句一样。

相关问题