2

データベースでクエリを作成する関数を作成します。

function mysqli($query){
    $mysqli = new mysqli('test','test','test','test');
    if (mysqli_connect_errno()) {
        printf("Bad connect: %s\n", mysqli_connect_error());
        exit();
    }
    $result = $mysqli->query("SET NAMES utf8");
    $result = $mysqli->query("set character_set_client='utf8'");
    $result = $mysqli->query("set collation_connection='utf8_general_ci'");
    $result = $mysqli->query($query);

    $mysqli->close();
    return $result;
};

次のステップでは、影響を受ける行の数を取得します。

このために私は作る:

$res2 = mysqli("INSERT INTO Table (name, value) VALUES ('$name', '$value')");
echo $res2->affected_rows;

しかし、私Notice: Trying to get property of non-objectはオンラインになりますecho $res2->affected_rows;

の数を取得する方法はaffected_rows?

4

4 に答える 4

6

この機能は無意味で有害です。

また、絶対に使用しないでください。

他のすべての回答では、ほとんどの役に立たない部分を削除するように指示されました。あなたが本当に取り除かなければならないのは接続部分ですが。これにより、機能全体が役に立たなくなります。

さらに、クエリを実行するたびに接続して MySQL サーバーを強制終了するため、有害です。

そして、準備されたステートメントをサポートしていないため、さらに有害です。

于 2013-10-25T13:04:08.370 に答える
3

$mysqli->close(); を削除します。そして活用する

$mysqli->query("INSERT INTO Table (name, value) VALUES ('$name', '$value')"); 
echo $mysqli->affected_rows;
于 2013-10-25T12:46:04.683 に答える
1

変化する

$res2 = mysqli("INSERT INTO Table (name, value) VALUES ('$name', '$value')");

$res2 = mysqli_query("INSERT INTO Table (name, value) VALUES ('$name', '$value')");
于 2013-10-25T12:40:02.830 に答える
-5

次の行を削除します。

$mysqli->close();

関数から。これは機能します。

function mysqli($query){

$mysqli = new mysqli('test','test','test','test');
if (mysqli_connect_errno()) {
    printf("Bad connect: %s\n", mysqli_connect_error());
    exit();
}
$result = $mysqli->query("SET NAMES utf8");
$result = $mysqli->query("set character_set_client='utf8'");
$result = $mysqli->query("set collation_connection='utf8_general_ci'");
$result = $mysqli->query($query);
$arr = array($result,$mysqli);
return $arr;
}

Amd は次のように使用します。

$res2 = mysqli("INSERT INTO Table (name, value) VALUES ('$name', '$value')");
echo $res2[1]->affected_rows;

そして、あなたの結果はこの変数になります:res2[0];

この回答を読んでください: mysqli_affected_rows() は、パラメーター 1 が mysqli であると想定しています。

于 2013-10-25T12:39:57.643 に答える