Это уже прослушивало меня на прошлый день. Вот код:PHP Неопределенное смещение внутри класса
public function getUserCredits()
{
$dbl = new databaseManager();
$dbl->connect_simp();
$ret = $dbl->queryDB("SELECT * FROM users WHERE `USER_ID` = ".$this->userId);
$this->userCredits = $ret['USER_CREDITS'];
return $this->userCredits;
}
Теперь, когда я пытаюсь запустить этот код, я получаю сообщение об ошибке undefined offset
. Ничего слишком странного в этом, когда я впервые увидел это, но теперь это происходит все больше и больше, и я не могу понять, почему.
Я могу использовать var_dump();
и var_export();
, и он отображает содержимое возвращаемого массива абсолютно точно.
EDIT:
array(1) {
[0]=>
array(50) {
["USER_ID"]=>
string(10) "0000000001"
[0]=>
string(10) "0000000001"
["USER_USERNAME"]=>
string(8) "SampleUsername"
[1]=>
string(8) "SampleUsername"
["USER_PASSWORD"]=>
string(32) "5f4dcc3b5aa765d61d8327deb882cf99"
[2]=>
string(32) "5f4dcc3b5aa765d61d8327deb882cf99"
["USER_EMAIL"]=>
string(0) ""
[3]=>
string(0) ""
["USER_LEGION"]=>
string(1) "1"
[4]=>
string(1) "1"
["USER_ENERGY"]=>
string(4) "2812"
[5]=>
string(4) "2812"
["USER_MAX_ENERGY"]=>
string(4) "2812"
[6]=>
string(4) "2812"
["USER_SHIELD"]=>
string(2) "20"
[7]=>
string(2) "20"
["USER_MAX_SHIELD"]=>
string(2) "20"
[8]=>
string(2) "20"
["USER_HULL"]=>
string(2) "60"
[9]=>
string(2) "60"
["USER_MAX_HULL"]=>
string(2) "60"
[10]=>
string(2) "60"
["USER_CREDITS"]=>
string(19) "9223372036854775807"
** Вы полностью раскрываете атаки SQL-инъекций. ** Пожалуйста, ознакомьтесь с использованием параметризованных запросов, предпочтительно с модулем PDO, для защиты вашего веб-приложения. У http://bobby-tables.com/php есть примеры, чтобы вы начали, и [этот вопрос] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php) имеет много примеров. –
Можете ли вы добавить вывод 'var_dump()' к вопросу? – raina77ow
добавьте также результат var_dump. – hallaji