php - 将图像保存在服务器中并链接到数据库 PHP 数据对象 PDO OOP

标签 php mysql pdo

我有定制的 MVC。我正在使用 PDO。我想将图像保存在服务器中并将链接保存到数据库。

public function add(){
    // Sanitize POST
    $post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

    if($post['submit']){
        if($post['title'] == '' || $post['body'] == '' || $post['link'] == ''){
            Messages::setMsg('Please Fill In All Fields', 'error');
            return;
        }

        $images=$_FILES['upic']['name'];
    $tmp_dir=$_FILES['upic']['tmp_name'];
    $imageSize=$_FILES['upic']['size'];

    $upload_dir='uploads/';
    $imgExt=strtolower(pathinfo($images,PATHINFO_EXTENSION));
    $valid_extensions=array('jpeg', 'jpg', 'png', 'gif', 'pdf');
    $picProfile=rand(1000, 1000000).".".$imgExt;
    move_uploaded_file($tmp_dir, $upload_dir.$picProfile);

        // Insert into MySQL
        $this->query('INSERT INTO shares (title, body, link, user_id, upic) VALUES(:title, :body, :link, :user_id, :upic)');
        $this->bind(':title', $post['title']);
        $this->bind(':body', $post['body']);
        $this->bind(':link', $post['link']);

        $this->bind(':user_id', 1);
        $this->bind(':upic', $post['upic']);
        $this->execute();
        // Verify
        if($this->lastInsertId()){
            // Redirect
            header('Location: '.ROOT_URL.'shares');
        }
    }
    return;
}

使用此代码,图像保存在服务器中,但我在数据库中没有得到任何信息。当我删除图像插入代码时,所有其他数据存储都很好。如何在服务器中上传图像并将链接保存在数据库表中?

我收到以下错误

注意:未定义索引:upic 在 C:\xampp\htdocs\test3\models\share.php 第 36 行

最佳答案

你在这里做错了。你可以试试这个。

    $dbhost = "localhost";
    $dbname = "mypdo";
    $dbusername = "root";
    $dbpassword = "123456";

    $link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);

    $statement = $link->prepare("INSERT INTO shares (title, body, link, user_id, upic) VALUES(:title, :body, :link, :user_id, :upic)");

    $statement->execute(array(
        "title" => $post['title'],
        "body" => $post['body'],
        "link" => $post['link'],
        "user_id" => 1,
        "upic" => $upload_dir.$picProfile,
    ));

关于php - 将图像保存在服务器中并链接到数据库 PHP 数据对象 PDO OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45453208/

相关文章:

php - 基于用户、角色和方法呈现菜单

mysql - 如何查询具有最新日期的行并在第二个表上进行内部联接?

php - 一次查询中的嵌套集、产品计数和类别深度

php - PDO 数据未存储在数据库中

php - 如何在 laravel 5.4 中为所有请求和响应设置日志

javascript - 如何使用 JavaScript 更改 select 标签的值?

php - 正则表达式提取第二个破折号/连字符之前的所有字符

mysql - 如何在同一个 Docker 容器上运行 JIRA 和 MySQL

php - 如果mysql表中user_id不存在,如何插入新数据

php - 仅可通过登录用户页面访问