如果否则构建

时间:2013-01-25 12:12:37

标签: php database

我对这里定义的PHP类不是很满意: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"); 

但我不知道$资源是如何发挥作用的?

4 个答案:

答案 0 :(得分:0)

你有第二个其他构造,它应该看起来像:

if($x > 8) {
    // your if(true) code
} else {
    // your if(false) code
}

答案 1 :(得分:0)

有一个缺少if else的块,这里用**突出显示你得到解析器错误,因为你的代码有问题

<?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();
}
}
?>

答案 2 :(得分:0)

我认为你正在尝试做一些与众不同的事情,但我希望这有助于解释如何将三个条件结合在一起。

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);

答案 3 :(得分:0)

您的代码中缺少某些内容。如果你有人运行你的代码。

  

解析错误:语法错误,第8行意外的T_ELSE

所以你的功能应该如下所示

function query($x) 
{
    if ($x > 8) 
    {
     //runs when $x value is greater than 8
     return 'greater than eight!';   
    } 
    else 
    {
     // if the condition didnt meet, according to my knowledge you should return false here 
     return true;
    }

    exit();
}

print query(7);

如果你想要一个if,

if (condition)
  {
  code to be executed if condition is true;
  }
else if (condition)
  {
  code to be executed if condition is true;
  }
else
  {
  code to be executed if condition is false;
  }