Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过函数传递PHP变量_Php_Mysql_Function_Connection - Fatal编程技术网

通过函数传递PHP变量

通过函数传递PHP变量,php,mysql,function,connection,Php,Mysql,Function,Connection,所以我一直在尝试一些原始的PHP编码。我的意思是在不使用框架或其他帮助工具的情况下编写PHP 在创建了一些小型初创项目后,我偶然发现了一个问题。请记住,我仍处于学习阶段,因此如果有更好的方法来编写代码,请告诉我 我遇到的问题与连接和插入数据库有关。这种联系是有效的,经过一些研究,我想我找到了通过函数传递变量的方法。(遗憾的是我没有) 我的代码如下所示: 数据库类 <?php /** * Created by: PhpStorm. * Project: Learning_projects

所以我一直在尝试一些原始的
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;
        }
    }
}
如您所见,我正试图为
insert
函数要求函数
connect()
。是的,我可以在insert函数中编写connect,是的,这确实有效,但这不是我想要的

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

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


提前感谢!

使用
$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;
            }
        }
公共功能连接(){
$servername=“localhost”;
$username=“…”;
$password=“…”;
$db=“…”;
$this->conn=new\mysqli($servername、$username、$password、$db);
如果($this->conn->connect\u错误){
die(“连接失败:”.$this->conn->connect\u错误);
}
echo“连接成功”;
返回$this->conn;
}
公共函数insert(){
$content=“123”;
$sql=mysqli_查询($this->conn,“插入内容(`content`)值('$content'));
变量转储($sql);
如果($sql==TRUE)
{
回声“警报(‘主题1 ingevoerd’)”;
}
否则{
echo“Error:”.$sql.
“$this->conn->Error; } }
您从不将任何内容分配给
$this->conn
,您只需设置一个局部变量
$con
,该变量在
连接()时立即销毁
method finished.@jeroen已经考虑过了,但是有没有其他方法,有没有一种方法可以通过这种方法来实现它,而不是设置一个全局变量并传递它。这是我的问题。我不确定你的意思,你是在寻找依赖注入?你可以在这里找到很多相关信息。@jeroen,谢谢(:这就是我要找的是。出现2个错误:1.(!)注意:在第62行的F:\wamp64\www\Learning\u projects\PHP\PHP\u Learning\3\u Database\classes\Database.PHP中尝试获取非对象的属性:::2.警告:mysqli\u query()预期参数1为mysqli,在第53行的F:\wamp64\www\Learning\u projects\PHP\PHP\u Learning\3\u Database\classes\Database.PHP中为空。您是否更改了
connect()
方法?不,它仍然如我的问题中所述,当然是连接凭据。在
connect
中也更改
$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;
            }
        }