【发布时间】:2012-07-27 18:04:30
【问题描述】:
我在创建用于将实例插入数据库的 php 脚本时遇到问题,但是我得到了一个微不足道的输出,但我不知道如何修复它。代码是:
<?php
try{
$user = 'root';
$pass = null;
$pdo = new PDO('mysql:host=localhost; dbname=divebay', $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$username = $_POST['username'];
$password = sha1($_POST['password']);
$location = %_POST['location'];
$email = $_POST['email'];
$name = $_POST['fname'] . " " . $_POST['surname'];
$check = $pdo->prepare('SELECT * FROM user WHERE username=?');
$check->bindValue(1, $username);
$check->execute();
if($check->fetch(PDO::FETCH_OBJ)){
echo "Account name already exists";
}
else{
$stmt = $pdo->prepare('INSERT INTO user(username, password, location, email, name)
VALUES(:username, :password, :location, :email, :name)');
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->bindParam(':password', $password, PDO::PARAM_STR);
$stmt->bindParam(':location', $location, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
if($stmt->execute()){
echo "Account created";
}
else{
echo "Account could not be created";
}
}
$pdo = null;
}catch(PDOException $e){
echo $e->getMessage();
}
?>
我希望输出类似于“Account created”。相反,我收到此错误的输出:
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $用户名 = $_POST['用户名']; $password = sha1($_POST['password']);
$location = %_POST['location']; $email = $_POST['email']; $名称= $_POST['fname'] 。 “”。 $_POST['姓氏']; $支票= $pdo->prepare('SELECT * FROM user WHERE username=?');
$check->bindValue(1, $username); $check->执行();
if($check->fetch(PDO::FETCH_OBJ)){ echo "账户名已经存在"; } else{ $stmt = $pdo->prepare('INSERT INTO user(username, password, 位置,电子邮件,姓名)值(:用户名,:密码,:位置,:电子邮件, :姓名)'); $stmt->bindParam(':username', $username, PDO::PARAM_STR); $stmt->bindParam(':password', $password, PDO::PARAM_STR);
$stmt->bindParam(':location', $location, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
if($stmt->execute()){ echo "账户创建"; } else{ echo "账户 无法创建"; } } $pdo = null; }catch(PDOException $e){ echo $e->getMessage(); } ?>
这个脚本出了什么问题导致这个?
【问题讨论】:
-
您的服务器是否启用了 PHP?如果你访问一个只包含
<?php phpinfo(); ?>的 PHP 文件会发生什么? -
另外,检查您过去的问题并接受答案。你的接受率只有 14%,而且非常低。因此,有些人可能不会给您答案。
-
@LiamWarnes Chewckif PDO 是否启用
-
@David 我认为是 phpinfo() 给了我一堆显示版本信息等的表格
-
看不到这将如何导致 php 代码被输出,但您似乎在
$location = %_POST['location'];有错字,用 % 而不是 $