使用OOP mysqli扩展类与数据库连接

时间:2017-04-25 18:12:02

标签: php database class mysqli connection

我知道必须在mysqli中编写mysql的新部分。我无法对数据库执行这些插入查询。我搜索了很多,但找不到简单的建议,或者可能是我不明白。

未定义的变量:第32行的C:\ wamp \ www \ New folder \ php \ msqliconnect.php中的mysqli

致命错误:在第32行的C:\ wamp \ www \ New文件夹\ php \ msqliconnect.php中的非对象上调用成员函数mysqli_query()

感谢任何帮助。

$ awk 'NR==FNR{a[$2];next}($3 in a){print "FOUND"}' <(zcat a.txt.gz ) <(zcat b.txt.gz)
FOUND
FOUND
FOUND
FOUND

awk '
NR==FNR {                            # first file hash to a on second field
    a[$2]
    next }                           # next record
($3 in a){                           # second file
    print "FOUND" }                  # print FOUND when found (more informative?)
' <(zcat a.txt.gz ) <(zcat b.txt.gz) # uncompress and use process substitution 

1 个答案:

答案 0 :(得分:1)

在您的connect()insertdata()两种方法中,您使用的是本地变量 $mysqli,而不是实例变量 public $mysqli;。您应该在实例方法中使用$this->mysqli而不是$mysqli。因此,您的connect()insertdata()方法将如下所示:

function connect(){
    $hostname = "localhost";
    $username = "root";
    $password = "";
    $database = "demodatabase";
    $this->mysqli = new mysqli($hostname, $username, $password, $database);
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    return true;            
}

function insertdata($a, $b){
    $insert_row = $this->mysqli->query("INSERT INTO tb_user (id, user, password, status) VALUES('','".$a."', '".$b."', '')");
    if($insert_row){
        print 'saved'; 
    }else{
        die('Error : ('. $this->mysqli->errno .') '. $this->mysqli->error);
    }
}

旁注:了解prepared statement因为您的查询现在容易受到SQL注入攻击。另请参阅how you can prevent SQL injection in PHP