【发布时间】:2015-12-30 06:25:49
【问题描述】:
当我尝试在我的数据库中插入数据时出现此错误。我已经搜索了这个错误的原因,我认为我的代码是正确的,我不应该得到这个错误。我的代码是这些:
config.php
<?php
class DatabaseConnection{
public function __construct(){
try{
$pdo = new PDO('mysql:host=localhost;dbname=test','root',''); //'mysql:host=host;dbname=dbname','mysqluser','mysqlpassword'
}
catch (PDOException $e){
exit('Database error');
}
}
}
?>
functions.php
<?php
require "config.php";
class LoginRegister{
function __construct(){
$database= new DatabaseConnection();
}
public function registerUser($username,$password,$name,$email){
global $pdo; //THIS IS THE LINE WITH ERROR
$query=$pdo->prepare("SELECT id FROM usuarios WHERE nombre_usuario=? AND correo_e=?");
$query->execute(array($username,$email));
$num=$query->rowCount();
if($num==0){
$query = $pdo->prepare("INSERT INTO usuarios(nombre_usuario,nombre_real,password,correo_e) VALUES (?,?,?,?)");
$query->execute(array($username,$password,$name,$email));
return true;
}else{
return print "Username or E_mail in use";
}
}
}
?>
注册.php
<?php
require_once "functions.php";
$user = new LoginRegister();
?>
...HTML CODE...
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$username=$_POST['nombre_usuario'];
$password=$_POST['password'];
$name=$_POST['nombre_real'];
$email=$_POST['correo_e'];
if(empty($username) or empty($password) or empty($name) or empty($email)){
echo "Error... Field must not be empty";
}else{
$register = $user->registerUser($username,$password,$name,$email);
if($register){
echo "Register done <a href='login.php'>Click here</a> for login";
}else{
echo "Username or E_mail in use";
}
}
}
?>
...HTML CODE...
如您所见,我在 registerUser 函数中声明了变量 $pdo,除了包含名称、用户名、密码和电子邮件的变量是同一个函数的参数。
我知道这是一个重复多次的问题,但我无法用其他问题的解决方案解决这个错误。
【问题讨论】: