php - 通过函数传递 PHP 变量

标签 php mysql function connection

所以我一直在尝试一些原始的 PHP 编码。我的意思是在不使用框架或其他帮助工具的情况下编写 PHP

在创建一些小型启动项目后,我偶然发现了一个问题。请记住,我仍处于学习阶段,所以如果有更好的方法来编写我的代码,请务必告诉我。

我遇到的问题与连接和插入数据库有关。连接有效,经过一些研究,我认为我找到了通过函数传递变量的方法。 (遗憾的是我没有)

我的代码如下:

数据库类

<?php
/**
 * Created by: PhpStorm.
 * Project: Learning_projects
 * File name: database.php.
 * User: Niels.
 * Date: 23-6-2017.
 * Time: 11:25.
 * File Description: ...
 */

namespace PHP_learning\Database\classes;


class database extends layout
{
    /**
     * @var $servername = Servername
     * @var $username = Username
     * @var $password = Password
     * @var $db = Database
     * @var $conn = Connection DB
     */
    protected $servername;

    protected $username;

    protected $password;

    protected $db;

    protected $conn;

    protected $content;

    public function connect() {
        $servername = "localhost";
        $username = "..";
        $password = "..";
        $db = "..";

        $conn = new \mysqli($servername, $username, $password, $db);

        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }
        echo "Connected successfully";

        return $this->conn;
    }

    public function insert() {
        $conn = $this->connect();
        $content = "123";
        $sql = mysqli_query($conn,"INSERT INTO content (`content`) VALUES ('$content')");
        var_dump($sql);

        if ($sql === TRUE)
        {
            echo "<script>alert('Topic 1 ingevoerd.')</script>";
        }

        else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
    }
}

索引.php

/**
* Require the classes, includes, etc all is set right
**/
/**
* Starting connect and insert 
**/
    $connection->connect();
    $connection->insert();

如您所见,我正在尝试为 insert 函数请求函数 connect()。是的,我可以在插入函数中编写连接,是的,这确实有效,但这不是我想要的。

所以如果有人能告诉我我做错了什么我会很高兴(:

PS:代码样式提示和排序总是受欢迎的(:

提前致谢!

最佳答案

使用 $this->conn 而不是再次连接它:

public function connect() {
        $servername = "localhost";
        $username = "..";
        $password = "..";
        $db = "..";

        $this->conn = new \mysqli($servername, $username, $password, $db);

        if ($this->conn->connect_error) {
            die("Connection failed: " . $this->conn->connect_error);
        }
        echo "Connected successfully";

        return $this->conn;
    }

    public function insert() {        
            $content = "123";
            $sql = mysqli_query($this->conn,"INSERT INTO content (`content`) VALUES ('$content')");
            var_dump($sql);

            if ($sql === TRUE)
            {
                echo "<script>alert('Topic 1 ingevoerd.')</script>";
            }

            else {
                echo "Error: " . $sql . "<br>" . $this->conn->error;
            }
        }

关于php - 通过函数传递 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44720426/

相关文章:

c - 在参数中带有字符串的函数

php - 使用 PHP 和 FPDF 创建 PDF 文件时未获取所有列值

php - HDD 上的旧 PHP session 文件

php - 不需要任何 PECL 扩展的纯 PHP 中的 AOP(开始!)- 怎么做?

php - $_GET 无法正常工作

mysql - 创建过程 : mysql syntax error

python - 如何将 python 函数/类/模块对象转换为 python 代码对象

php - 在 PHP 中,当我使用 PDO 调用 MySQL 存储过程,然后进行另一个查询时,出现错误 :

mysql - 如何在底层select-join语句中使用create table语句的列别名?

Python:删除非字母单词