$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