简单的PDO写不起作用

时间:2015-11-09 21:40:24

标签: 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服务器日志中也没有错误。

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

1 个答案:

答案 0 :(得分:0)

首先,您需要正确设置与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;