2015-08-25 2 views
0

, поэтому у меня есть простой код, который будет вставлять данные и будет возвращать last inserted id. Вот мой код:Доступ к переменной lastInsertId вне функции

function newUser($fname, $age) { 
    global $newUserLastID; 
    $conn = new PDO('mysql:host=localhost;dbname=myDB', 'root', ''); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $data = $conn->prepare("INSERT INTO accounts (fname, age) VALUES (?, ?)"); 
    $data->execute(array($fname, $age)); 
    $newUserLastID = $conn->lastInsertId('accounts'); 
} 

И то, что я хотел сделать, это запустить функцию и получить глобальную переменную типа:

newUser('JohnDoe', '22'); 
$someVar = $newUserLastID; 

Моя проблема, когда я запускаю этот код, мой CLI всегда падает , Есть ли способ исправить это? Я также получаю это на сервере производства. К тому же я не получаю никаких ошибок.

enter image description here enter image description here

(от просто запустив функцию, мои CLI падениям)

+0

Любые сообщения об ошибках сообщать? – Tim

+0

«Аварии» означает, что * точно *? –

+0

@ Тит, это моя проблема .. Я не получаю. – FewFlyBy

ответ

1

Почему не только вернуть новый идентификатор вместо того, чтобы использовать глобальную переменную? Таким образом, последняя строка вашей функции будет:

return $newUserLastID

Тогда при вызове функции, вы бы вместо того, чтобы присвоить его переменной, например:

$myNewId = newUser('JohnDoe', '22');

Я не знаю, является ли это причиной вашей ошибки, но это может быть место для начала.