好的,我拿出所有函数来消除超出范围的变量,现在我在最后一行收到错误。 “调用未定义的方法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);
}
});
});
}
答案 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); }