$EODQuery = "SELECT * FROM EOD WHERE Symbol LIKE '$start' LIMIT 1 OFFSET $limit";
$EODRes = $mysqli->query($EODQuery);
我得到一个错误,但没有当我直接查询数据库。原因:试图在php中获取非对象的属性
<?php $i = 0; while($i <= 4) { $EODRow = getEOD("A%",$i); $i++; echo $EODRow; } ?>
$EODQuery = "SELECT * FROM EOD WHERE Symbol LIKE '$start' LIMIT 1 OFFSET $limit";
$EODRes = $mysqli->query($EODQuery);
我得到一个错误,但没有当我直接查询数据库。原因:试图在php中获取非对象的属性
<?php $i = 0; while($i <= 4) { $EODRow = getEOD("A%",$i); $i++; echo $EODRow; } ?>
在好像你已经忘记了实例$ mysqli的第一次看,导致$ mysqli的不是一个对象,所以你不能执行查询()方法。
您的错误消息与查询本身无关。发生了什么事情是这样的:您在$mysqli
对象上调用方法query()
- 但是,PHP认为它实际上不是一个对象。
这样做的原因可能是:
您忘记了创建该对象(见http://www.php.net/manual/en/mysqli.connect.php)。这里有一个例子:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
您输入了错误的变量名,所以你的mysqli的对象实际上是所谓的别的东西。
您显示的代码位于函数或方法中,但您的$mysqli
对象位于全局范围内。在这种情况下,你应该“负担”入功能范围,就像这样:
function doStuff() {
global $mysqli;
$mysqli->query(...);
}
欲了解更多信息有关变量的作用域,看到这个链接:http://php.net/manual/en/language.variables.scope.php
你明白其中有什么错误行和哪些代码工作? `$ mysqli`从哪里来? – 2011-01-23 15:18:25
此外,显示确切的错误,并生成它的代码(您发布的代码不会产生该错误,需要更多)... – ircmaxell 2011-01-23 15:20:29
要么你没有实例化一个mysqli对象,在这种情况下$ mysqli是空的并且没有` - > query()`方法,或者查询本身失败,并且$ EODRes实际上是一个mysqli错误对象,而不是查询结果,没有` - > fetch()`方法。 – 2011-01-23 15:22:45