如何在 PDO 中访问超级变量 $_POST
how to acces super variable $_POST in PDO
在我的 PDO 语句中,我使用以下方法将数据插入到 SQL:
//insert into database with a prepared statement
$stmt = $db->prepare('INSERT INTO members (username,password,email,active) VALUES (:username, :password, :email, :active)');
$stmt->execute(array(
':username' => $_POST['username'],
':password' => $hashedpassword,
':email' => $_POST['email'],
':active' => $activasion
));
我的问题是我收到一条警告消息说 Dont Access superglobal variable $_post directly
在 google 之后我找到了这个解决方案 filter_input(INPUT_POST, 'var_name')
而不是 $_POST['var_name']
但这是 PHP
有什么方法可以 PDO
如何替换 PDO
中的 $_POST
和 $_GET
?
在变量中使用 $_POST 值
$stmt = $db->prepare('INSERT INTO members (username,password,email,active) VALUES (:username, :password, :email, :active)');
$username = $_POST['username'];
$email = $_POST['email'];
$stmt->execute(array(
':username' => $username,
':password' => $hashedpassword,
':email' => $email,
':active' => $activasion
));
filter_input(INPUT_POST, 'username')
而不是 $_POST['username']
应该可以。
PDO
不是不同的语言。它是一个 PHP 扩展,用于连接和操作数据源。
您可以在现有代码中使用 filter_input(INPUT_POST, 'username')
而不会出现问题。
$stmt = $db->prepare('INSERT INTO members (username,password,email,active) VALUES (:username, :password, :email, :active)');
$stmt->execute(array(
':username' => filter_input(INPUT_POST, 'username'),
':password' => $hashedpassword,
':email' => filter_input(INPUT_POST, 'email'),
':active' => $activasion
));
这应该工作得很好,但我不明白为什么你不能直接访问 $_POST
,不能用它来解决问题。
在我的 PDO 语句中,我使用以下方法将数据插入到 SQL:
//insert into database with a prepared statement
$stmt = $db->prepare('INSERT INTO members (username,password,email,active) VALUES (:username, :password, :email, :active)');
$stmt->execute(array(
':username' => $_POST['username'],
':password' => $hashedpassword,
':email' => $_POST['email'],
':active' => $activasion
));
我的问题是我收到一条警告消息说 Dont Access superglobal variable $_post directly
在 google 之后我找到了这个解决方案 filter_input(INPUT_POST, 'var_name')
而不是 $_POST['var_name']
但这是 PHP
有什么方法可以 PDO
如何替换 PDO
中的 $_POST
和 $_GET
?
在变量中使用 $_POST 值
$stmt = $db->prepare('INSERT INTO members (username,password,email,active) VALUES (:username, :password, :email, :active)');
$username = $_POST['username'];
$email = $_POST['email'];
$stmt->execute(array(
':username' => $username,
':password' => $hashedpassword,
':email' => $email,
':active' => $activasion
));
filter_input(INPUT_POST, 'username')
而不是 $_POST['username']
应该可以。
PDO
不是不同的语言。它是一个 PHP 扩展,用于连接和操作数据源。
您可以在现有代码中使用 filter_input(INPUT_POST, 'username')
而不会出现问题。
$stmt = $db->prepare('INSERT INTO members (username,password,email,active) VALUES (:username, :password, :email, :active)');
$stmt->execute(array(
':username' => filter_input(INPUT_POST, 'username'),
':password' => $hashedpassword,
':email' => filter_input(INPUT_POST, 'email'),
':active' => $activasion
));
这应该工作得很好,但我不明白为什么你不能直接访问 $_POST
,不能用它来解决问题。