猿问

PHP PDO MySQL:Insert语句运行无错误,不发生插入

我的代码:


<?php


try {

$t = '040485c4-2eba-11e9-8e3c-0231844357e8';


if (array_key_exists('t', $_REQUEST)) {

  $t = $_REQUEST["t"];

}


if (!isset($_COOKIE['writer'])) {

  header("Location: xxx");

  return 0;

}

$writer = $_COOKIE['writer'];


$dbhost = $_SERVER['RDS_HOSTNAME'];

$dbport = $_SERVER['RDS_PORT'];

$dbname = $_SERVER['RDS_DB_NAME'];

$charset = 'utf8' ;

$dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname};charset={$charset}";

$username = $_SERVER['RDS_USERNAME'];

$password = $_SERVER['RDS_PASSWORD'];


$pdo = new PDO($dsn, $username, $password);


$stmt = $pdo->prepare("select writer from mydbtbl where writer=? and t=?");

$stmt->execute(array($writer, $t));

$num = $stmt->fetch(PDO::FETCH_NUM);

if ($num < 1) {

  header("Location: login.php");

  return 0;

}


$dbMsg = "Authorized";


$dbname = 'imgs';

$dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname};charset={$charset}";

$pdo = new PDO($dsn, $username, $password);


if (isset($_FILES['filename'])) {


  $name = $_FILES['filename']['name'];


  // set path of uploaded file

  $path = "./".basename($_FILES['filename']['name']); 


  // move file to current directory

  move_uploaded_file($_FILES['filename']['tmp_name'], $path);


  // get file contents

  $data = file_get_contents($path, NULL, NULL, 0, 60000);    


  $stmt = $pdo->prepare("INSERT INTO file (contents, filename, t) values (?,?,?)");

  $stmt->execute(array

    ($data,

     $name,

     $t)

  );

  $dbMsg = "Added the file to the repository";

 // delete the file

 unlink($path);

}

} catch (Exception $e) {

  $dbMsg = "exception: " . $e->getMessage();

}

在代码中,您将看到第一部分是用于进行身份验证的。然后,在img模式上创建一个新的PDO对象,然后在该文件中执行查询。


稍后,在我打印$ dbMsg的地方,它说的是“已将文件添加到存储库”。但是,当我查询数据库(使用MySQL Workbench的Amazon AWS上的MySQL)时,没有插入任何内容。


我不明白为什么如果什么也没插入,却没有收到错误消息。如果显示“已将文件添加到存储库”,这是否表示插入成功?我唯一能想到的是为此使用不同的架构来处理问题。我对ebdb的所有插入操作都正常


犯罪嫌疑人X
浏览 293回答 0
0回答
随时随地看视频慕课网APP
我要回答