Неустранимая ошибка: имя функции должно быть строкой в ​​.. Ошибка PHP - PullRequest
3 голосов
/ 03 июня 2010

Привет, у меня есть класс с именем User и метод с именем insertUser ().

function insertUser($first_name, $last_name, $user_name, $password, $email_address, $group_house_id)
  {
    $first_name = mysql_real_escape_string($first_name);
    $last_name = mysql_real_escape_string($last_name);
    $user_name = mysql_real_escape_string($user_name);
    $password = mysql_real_escape_string($password);
    $email_address = mysql_real_escape_string($email_address);

    $query = "INSERT INTO Users
              (FirstName,LastName,UserName,Password,EmailAddress, GroupHouseID) VALUES
              ('$first_name','$last_name','$user_name','$password','$email_address','$group_house_id')";
    $mysql_query($query);
  }

И я называю это так:

$newUser = new User();
$newUser->insertUser($first_name, $last_name, $user_name, $email, $password,          $group_house_id);

Когда я запускаю код, я получаю эту ошибку:

Fatal error: Function name must be a string in /Library/WebServer/Documents/ORIOnline/includes/class_lib.php on line 33

Кто-нибудь знает, что я делаю неправильно? Кроме того, это моя первая попытка OO PHP.

Приветствия

Джоунси

Ответы [ 3 ]

15 голосов
/ 03 июня 2010

$mysql_query($query); => mysql_query($query);. Обратите внимание на недостающий доллар. Если вы попытаетесь использовать синтаксис вызова функции для переменной, она ищет функцию с именем, заданным значением переменной. В этом случае у вас нет переменной mysql_query, поэтому она возвращается ни с чем, что не является строкой и, следовательно, выдает ошибку.

3 голосов
/ 03 июня 2010

У вас есть блуждающий $ на mysql_query. Удалить это:

mysql_query($query);
0 голосов
/ 21 мая 2018

Просто для следующего новичка, еще один пример того, как эта ошибка

"Неустранимая ошибка PHP: имя функции должно быть строкой в ​​..."

запускается / и решается, как показано ниже;

Скажем, у вас есть ассоциативный массив;

$someArray = array ( 
                 "Index1" => "Value1",
                 "Index2" => "Value2",
                 "Index3" => "Value3"
              );

echo $someArray('Index1'); // triggers a fatal  error as above

Решение:

echo $someArray['Index1']; // <- square brackets - all good now
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...