2017-05-09 21 views
-2

私はmysqliにそれほど精通していないので、スクリプトをmysqliにアップグレードする必要があります。警告:mysqli :: __ construct():PHPのMYSQLI

以下に、コード:

function getConnected($host,$db_user,$db_password,$db) { 

     $mysqli = new mysqli($host, $db_user, $db_password, $db); 

     if($mysqli->connect_error) 
     die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error()); 

     return $mysqli; 
    } 
    $mysqli = getConnected("localhost", "root", " ", "test"); 
+0

あなたが必要とするもの..問題点を明確に説明してください。 –

答えて

0

私は何もあなたがオブジェクト指向と手続きのスタイルを混合していることを除いて、あなたのコードでworng表示されません。単純にこの変更

(私はそれが失敗する理由だろうと思うないこと):この

die('Connect Error (' . mysqli->connect_errno . ') '. mysqli->connect_error); 

die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error()); 

を、あなたはすべてのOOPに設定されています。この後


あなたはhttp://php.net/manual/en/mysqli.query.php

$mysqli = getConnected("localhost", "root", " ", "test"); 
$mysqli->query('SELECT * FROM tableA'); 

あるいは

getConnected("localhost", "root", " ", "test")->query('SELECT * FROM tableA'); 

またはステートメントhttp://php.net/manual/en/mysqli.prepare.phpを開始するようなことを行うことができるはず。準備されたステートメントを実装するのが良い習慣です(ユーザー入力を扱う場合は必須です)。それは基本的にエスケープを置き換えます。

if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) { 

    /* bind parameters for markers */ 
    $stmt->bind_param("s", $city); 

    /* execute query */ 
    $stmt->execute(); 

    /* bind result variables */ 
    $stmt->bind_result($district); 

    /* fetch value */ 
    $stmt->fetch(); 

    printf("%s is in district %s\n", $city, $district); 

    /* close statement */ 
    $stmt->close(); } 

それはmysqliのためにアップグレードするために学習曲線のビットだが、あなたはそれのこつを得たら、それは前任者と比較してどのように強力な表示されます。

関連する問題