2016-12-19 4 views
1

私はSQLの構文を実行できる関数を実行しようとしていますが、問題を抱えていますが、mysqli_querryを実行しようとするとこの関数は2つのパラメータを必要とします。しかし、データベースに接続する別の機能がありますが、どうすればこの問題を解決できますか?データベースに接続した後に関数を実行

function connect_to_database($servername, $username,$password,$dbname) { 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
} 

function execute($get_sql) { 
    $sql[0] = $get_sql; 
    mysqli_query($sql[0]); 
} 

connect_to_database("localhost","root","root","m1_14"); 
execute("INSERT INTO teszt_1 (email,username,order,createdate) VALUES ('[email protected]','test','test',NOW())"); 

答えて

1

これを行います。

mysqli_queryは、2つのパラメータを必要とし、あなたは一度だけ与えて、そのyoutはexecute機能にあなたが「グローバル」変数を宣言する必要がmysqli_query関数のすべてのパラメータ

function connect_to_database($servername, $username,$password,$dbname) { 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    //return connection or define connection as global and use as global scenario 
    return $conn; 
} 

function execute($get_sql, $connect) { 
    $sql[0] = $get_sql; 
    mysqli_query($connect, $sql[0]); 
} 

$connection = connect_to_database("localhost","root","root","m1_14"); 
execute("INSERT INTO teszt_1 (email,username,order,createdate) VALUES ('[email protected]','test','test',NOW())", $connection); 
+1

あなたの投稿にコメントしたように接続を返すか、グローバルとして使用してください。 – webDev

+0

ありがとうございます。ありがとうございます.D –

3

を与えます:

<?php 
    $conn = null; // ◄■■■ 
    $result = null; // ◄■■■ 

    function connect_to_database($servername, $username,$password,$dbname) 
    { global $conn; // ◄■■■ 
     $conn = new mysqli($servername, $username, $password, $dbname); 
     if ($conn->connect_error) 
     { 
      die("Connection failed: " . $conn->connect_error); 
     } 
    } 

    function execute($get_sql) 
    { global $conn; // ◄■■■ 
     global $result; // ◄■■■ 
     $sql[0] = $get_sql; 
     $result = mysqli_query($conn,$sql[0]); // ◄■■■ $CONN AND $RESULT. 
    } 

    connect_to_database("localhost","root","root","m1_14"); 
    execute("INSERT INTO teszt_1 (email,username,order,createdate) " . 
      "VALUES ('[email protected]','test','test',NOW())"); 

    execute("select * from teszt_1"); 

    foreach ($result as $row) // ◄■■■ USE $RESULT HERE. 
     echo $row["email"]; 

Gl obal変数はある関数から別の関数に値を渡すことを可能にします。

「挿入」の場合は$resultは不要ですが、「選択」の場合は$resultを使用して値にアクセスできます。

+0

彼は最初の方法(接続方法)から接続変数を返すだけですか? – webDev

+1

@ ShaileshSingh、猫の皮膚を作る方法は複数あります。 –

+0

@FaragoRoland、あなたが "select"を実行した場合、結果が必要になります。 –

関連する問題