我目前的代码如下:
$key = sha1(microtime().rand().microtime().rand()); // not used for security threads
try {
$s = \DB::_('my-cms')->prepare('INSERT INTO keys (user_name, user_email, key) VALUES (?, ?, ?)');
$s->execute([$name, $email, $key]);
return $key;
} catch (\Exception $e) {
die(print_r($e));
}
执行此代码时,我总是得到PHP致命错误Allowed memory size of x bytes exhausted
。
当不使用try-catch模型时,异常
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
被抛出。
虽然key
没有保留MySql关键字,但在反引号中设置key
列名可以修复错误。
尽管如此,这不应该导致内存耗尽!我没有发现任何类似的问题......