php - 简单的 PDO 写入不起作用

标签 php mysql pdo

我正在尝试让一个简单的 PDO 插入工作。我已经使用 PDO 成功创建了一个名为 mydb10 的表,接下来我要做的就是将数据插入到该表中。运行脚本不会返回任何错误(启用了 PDO 错误模式异常),但表仍然包含空值。

我正在使用本地服务器运行 PHP 文件,并连接到 Amazon RDS 数据库。目前,所有通过 SSH、HTTP、HTTPS 和 MYSQL 的入站流量都允许通过数据库的安全组

$link = new PDO("mysql:host=$dbhost;dbname=$dbname",$username,$password);

$statement = $link->prepare("INSERT INTO mydb10 (selectedMain, selectedSide)
    VALUES(:selectedMain, :selectedSide)");

$statement->execute(array(
    "selectedMain" => "test",
    "selectedSide" => "test2"
));

这可能很愚蠢,但我已经被困了一段时间了,感谢任何帮助。如果您想了解更多信息,请告诉我。我正在尝试在我的应用程序中使用 PHP,但甚至无法让这个简单的测试发挥作用,所以这有点令人沮丧。

编辑#1

此片段是一个较大文件的一部分。我能够成功 使用我的凭据连接到数据库并在服务器上创建新表。我确实在异常模式下启用了 PDO 错误报告,它帮助我解决了过去的语法错误,但当我运行代码时,我不再收到任何错误。 MYSQL 服务器日志上也没有错误。

如果需要,我可以提供对调试有用的任何其他信息。

最佳答案

首先您需要正确设置与 MySQL 数据库的连接。您可以将此代码写入sql.php:

<?php
  $ServerName = "******";
  $Username = "******";
  $Password = "******";
  $DataBase = "******";

  try {
    $CONN = new PDO("mysql:host=$ServerName; dbname=$DataBase", $Username, $Password);
    $CONN->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $CONN->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  } catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
  }
?>

现在,当你正确设置连接后,你需要执行sql,但在此之前你需要包含sql.php:

try {
    $SQL = 'INSERT INTO MyDB10 (SelectedMain, SelectedSide) VALUES(:SelectedMain, :SelectedSide)'; // Write SQL Query to variable
    $SQL = $CONN->prepare($SQL); // Prepare SQL Query
    $SQL->execute(array('SelectedMain' => 'Test', 'SelectedSide' => 'Test2')); // Execute data to Insert in MySQL Databse
  } catch(PDOException $e) {
     echo "Error: " . $e->getMessage();
  } 

完成所有查询后,您必须关闭连接:

$CONN = null;

关于php - 简单的 PDO 写入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33618805/

相关文章:

用于选择列的总和和计数的php代码

MYSQL-PDO 预处理语句

mysql - (我如何)使用证书将 Azure 数据工厂连接到(本地)mysql 数据库

php - 具有多个 like 的 PDO 查询

php - 使用 PDO 和 OOP 的 MySQL 查询问题

php - 在两个表之间使用 id 来输出想要的数据

php - fatal error : Class 'COM' not found in E:\Server\wwwroot\PHPWebAdmin\initialize. php 第 13 行

php - 如何获取服务器上用户的日历信息?

php - tinymce 在内容周围添加 p 标签并将其存储在数据库中,当我使用 PHP 检索时,拆分 p 标签并为每个标签添加一个类的最佳方法是什么

mysql - 与 PDO 和准备好的语句一起使用时如何确定所需的 max_allowed_pa​​cket 大小?