0

ここで定義された PHP クラスに 100% 満足しているわけではありません: mysqli

私はそれをいくらか短くするために内臓を取り除き、実行時に解析エラーを取得しました。

<?php

function query($x) 
{
if ($x > 8) {
    return 'greater than eight!';   
    } else {
    return true;
}
} else {
    exit();
    }
}
print query(7);

オリジナルと同じ構成(だと思います)ですね。もちろん、署名とメソッドの本体は別として。私は前に if else else 句に出くわしたことがなく、少なくとも論理的に賢明な私にとってどういうわけか「正しく感じられない」. さらに、私のコードはコンパイルされません。多分あなたは私をまっすぐにすることができますか?

それがどのように使用されるかの例はありますか?

第二に、元のクラスから - $resource 変数はどこで、またはどのようにそこに入るのですか? $resource 変数がオブジェクトに渡されるのは、どのようなコンテキストでしょうか?

私のクライアントコードは次のとおりです。

$db = new MySQLi;
$db->query("SELECT * FROM my_table"); 

しかし、 $resource がどのように機能するのかわかりませんか?

4

4 に答える 4

0

2番目のelse構文があり、次のようになります。

if($x > 8) {
    // your if(true) code
} else {
    // your if(false) code
}
于 2013-01-25T12:22:33.187 に答える
0

** で強調表示されている if else ブロックが欠落しています。これは y です。コードに問題があるため、パーサー エラーが発生しています。

<?php
final class MySQLi {
private $mysqli;

public function __construct($hostname, $username, $password, $database) {
    $this->mysqli = new mysqli($hostname, $username, $password, $database);

    if ($this->mysqli->connect_error) {
        trigger_error('Error: Could not make a database link (' . $this->mysqli->connect_errno . ') ' . $this->mysqli->connect_error);
    }

    $this->mysqli->query("SET NAMES 'utf8'");
    $this->mysqli->query("SET CHARACTER SET utf8");
    $this->mysqli->query("SET CHARACTER_SET_CONNECTION=utf8");
    $this->mysqli->query("SET SQL_MODE = ''");
}

public function query($sql) {
    $result = $this->mysqli->query($sql);



    if ($this->mysqli->errno) {
    //$mysqli->errno
    }

        if (is_resource($resource)) {
            $i = 0;

            $data = array();

            while ($row = $result->fetch_object()) {
                $data[$i] = $row;

                $i++;
            }

            $result->close();

            $query = new stdClass();
            $query->row = isset($data[0]) ? $data[0] : array();
            $query->rows = $data;
            $query->num_rows = $result->num_rows;

            unset($data);




            return $query;  
        } else {
            return true;
        }
    ***} else {
        trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql);
        exit();
    }***
}

public function escape($value) {
    return $this->mysqli->real_escape_string($value);
}

public function countAffected() {
    return $this->mysqli->affected_rows;
}

public function getLastId() {
    return $this->mysqli->insert_id;
}   

public function __destruct() {
    $this->mysqli->close();
}
}
?>
于 2013-01-25T12:25:57.693 に答える
0

何か違うことをしようとしていると思いますが、これが 3 つの条件を結び付ける方法を説明するのに役立つことを願っています。

function query($x) {
    if ($x > 8) { // If $x is greater than 8
        return 'greater than eight!';   
    } else if ($x < 8) { // If $x is lower than 8
        return true;
    } else {
        return "The number is 8!";
    }
}

print query(7);
于 2013-01-25T12:29:07.413 に答える