在非对象错误上调用成员函数query()

时间:2015-05-15 16:49:01

标签: php mysql

好的,我拿出所有函数来消除超出范围的变量,现在我在最后一行收到错误。 “调用未定义的方法mysqli_result :: fetch_all()”

var fs = Promise.promisifyAll(require("fs"));

function readsousdir(path, db, db2) {
    var Datastore = require('nedb');
    return fs.readdirAsync(path + '\\').reduce(function(_, file){
        return fs.statAsync(path + '\\' + file)
        .then(function(stats){
            var foldertrue = stats.isDirectory();
            var filetrue = stats.isFile() == true;
            if (foldertrue == true) {
                var doc;
                doc = folderdb(path + '\\' + file);
                db2.insert(doc);
                return readsousdir(path + '\\' + file, db, db2)
            }
            if (filetrue) {
                doc = pistedb(path + '\\' + file, []);
                db.insert(doc);
            }
        });
    });
}

2 个答案:

答案 0 :(得分:0)

  

知道为什么我在$ result = $ conn->查询($ sql)时遇到此错误的原因;试图跑?

您应该阅读此part of documentation

你不能在这样的函数中使用$conn变量。函数内使用的所有变量必须作为参数传递或在函数体中声明。

tldr:将$conn = test_connect();移动到函数test的正文中。

答案 1 :(得分:0)

问题出在下面的代码中:

function test(){$ sql =" SELECT * FROM users&#34 ;; $ result = $ conn-> query($ sql); return $ result-> fetch_all(MYSQLI_ASSOC); }

您应该将$ conn对象定义为测试函数中的全局对象,或者在函数中传递它。

尝试以下代码:

function test(){ 全球$ conn; $ sql =" SELECT * FROM users&#34 ;; $ result = $ conn-> query($ sql); return $ result-> fetch_all(MYSQLI_ASSOC); }

OR

功能测试($ conn){$ sql =" SELECT * FROM users&#34 ;; $ result = $ conn-> query($ sql); return $ result-> fetch_all(MYSQLI_ASSOC); }