Как сохранить данные в одной строке? - PullRequest
0 голосов
/ 22 апреля 2020

Привет, как я могу сохранить данные в одной строке в базе данных Я сохраняю в базу данных с помощью этого кода, но она сохраняется в двух разных строках, пожалуйста, помогите мне спасибо. Вот скриншот базы данных. Screenshot

<?php

    $users = array("username"=>"Kaleem", "address"=>"abc");

class dbase{

    public function dbinsert($table,$users)
    {
        foreach ($users as $key => $value) 
        {
            $sql = "INSERT INTO $table (`$key`) VALUES ('$value')";
            $success = $this->conn->query($sql);
            if($success)
            {
                echo "Data inserted";
            }
        }
    }


        public function __construct ()
        {

            $this->conn = new mysqli('localhost','root','','dbase');

            if($this->conn)
            {
                echo "Connected<br>";
            }
        }


}

$obj = new dbase;
$obj->dbinsert('users',$users);

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Прежде всего, я рекомендую массив:

$users = array(array("username"=>"Kaleem", "address"=>"abc"));

Таким образом, каждый пользователь будет массивом внутри этого большого массива $ users. Если вы сделаете это, ваш php код должен выглядеть следующим образом:

<?php

$users = array("username"=>"Kaleem", "address"=>"abc");

class dbase{

public function dbinsert($table,$users)
{
    foreach ($users as $user) //better have descriptive names in variables, and we do not need to know the key! 
    {
        $username = $user['username']; 
        $user_address = $user['addess'];
        $sql = "INSERT INTO $table (`username`, 'addess') VALUES ('$username','$user_address')"; //lets insert both of them in the same row
        $success = $this->conn->query($sql);
        if($success)
        {
            echo "Data inserted";
        }
    }
}


    public function __construct ()
    {

        $this->conn = new mysqli('localhost','root','','dbase');

        if($this->conn)
        {
            echo "Connected<br>";
        }
    }


}
$obj = new dbase;
$obj->dbinsert('users',$users);

Надеюсь, этого объяснения достаточно, чтобы вы перебирали имя пользователя и адрес в качестве элементов и вставляли их каждый в отдельную строку вместо выполнения это в один ряд.

0 голосов
/ 23 апреля 2020
<?php

    $users[] = array("username"=>"Kaleem", "address"=>"abc");

class dbase{

    public function dbinsert($table,$users)
    {
        foreach ($users as $key => $value) 
        {
            $username = $value['username'];
            $address = $value['address'];
            $sql = "INSERT INTO $table (`username`,`address`) VALUES ('".$username."','".$address."')";
            $success = $this->conn->query($sql);
            if($success)
            {
                echo "Data inserted";
            }
        }
    }

        public function __construct ()
        {

            $this->conn = new mysqli('localhost','root','','dbase');

            if($this->conn)
            {
                echo "Connected<br>";
            }
        }


}

$obj = new dbase;
$obj->dbinsert('users',$users);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...