您好我是php和mysql的新手.但我有一个问题这是我的问题:
我正在尝试使用表单将数据插入数据库.
但是当我这样做时,它在用户名密码列中返回1.
这是我的Index.php:
<?php
$host = 'localhost';
$dbname= 'akar';
$user = 'akar';
$pass = 'raparen';
$dsn = "mysql:host=$host;dbname=$dbname";
$pdo = new PDO($dsn,$user,$pass);
$username = isset($_POST['username']);
$password = isset($_POST['password']);
$query = "INSERT INTO users (username,password) VALUES(:username,:password)";
$statement = $pdo->prepare($query);
$statement->execute(array(
':username'=> $username,
':password'=> $password
));
?>
Run Code Online (Sandbox Code Playgroud)
这是我的表格:
<form action='index.php' method='post'>
<input type='text' placeholder='Enter Username here!' name='username' />
<input type='password' placeholder='Enter Password here!' name='password' />
<input type='submit' value='Submit' />
Run Code Online (Sandbox Code Playgroud)
当我这样做:
$username = $_POST['username'];
Run Code Online (Sandbox Code Playgroud)
它工作正常,但当我这样做:
$username = isset($_POST['username']);
Run Code Online (Sandbox Code Playgroud)
它在数据库中插入1,而不是输入中的文本.
对不起,如果我组织任何事情,我是新手.
isset()返回一个布尔值,该值是要检查的变量的结果.它不能用于从变量中获取值.
$username = isset($_POST['username']);
$password = isset($_POST['password']);
Run Code Online (Sandbox Code Playgroud)
应该:
$username = $_POST['username'];
$password = $_POST['password'];
Run Code Online (Sandbox Code Playgroud)
或者,如果要在未设置这些变量的情况下分配默认值,则可以这样做:
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |