【发布时间】:2015-06-26 06:58:17
【问题描述】:
这是我的代码:
<?php
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', '1');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PSWD', '');
DEFINE ('DB_NAME', 'facebooklogin');
$connection = mysql_connect(DB_HOST, DB_USER, DB_PSWD) or die(mysql_error());
$db = mysql_select_db(DB_NAME, $connection) or die(mysql_error());
$register_firstname = $_POST['register_password'];
$register_lastname = $_POST['register_password'];
$register_username = $_POST['register_username'];
$register_password = $_POST['register_password'];
$register_confirm_password = $_POST['register_confirm_password'];
$register_email = $_POST['register_email'];
$register_firstname = mysql_real_escape_string($register_firstname);
$register_lastname = mysql_real_escape_string($register_lastname);
$register_username = mysql_real_escape_string($register_username);
$register_password = mysql_real_escape_string($register_password);
$register_confirm_password = mysql_real_escape_string($register_confirm_password);
$register_email = mysql_real_escape_string($register_email);
$query = "SELECT * FROM users WHERE username='$register_username'";
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count == 1){
echo "That username is taken. Please try another.";
}else{
$query = "SELECT * FROM users WHERE email='$register_email'";
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count == 1){
echo "That email is already in use. Please try again.";
}else{
if(strlen($register_firstname) == 0 or strlen($register_lastname) == 0 or strlen($register_username) == 0 or strlen($register_password) == 0 or strlen($register_confirm_password) == 0 or strlen($register_email) == 0){
echo "Please complete all forms.";
}else if(strlen($register_username) < 3 or strlen($register_username) > 12){
echo "Username must be between 3 and 12 characters.";
}else if(strlen($register_password) < 5 or strlen($register_password) > 12){
echo "Password must be between 5 and 12 characters.";
}else if($register_password != $register_confirm_password){
echo "Passwords do not match. Please try again.";
}else{
$dbinsert = "INSERT INTO users (username, password, first_name, last_name, email) VALUES ('$register_username', '$register_password', '$register_firstname', '$register_lastname', '$register_email')";
if(!mysqli_query($dbinsert)){
die("Error registering new user in database.");
}
echo "Registered!";
}
}
}
?>
<html>
<head>
<title>registered</title>
</head>
</html>
当我运行它时,我得到 2 个错误:不推荐使用:mysql_connect():不推荐使用 mysql 扩展并将在将来删除:请改用 mysqli 或 PDO
和
警告:mysqli_query() 至少需要 2 个参数,给定 1 个
有人能弄清楚这段代码中的错误是什么,请修复它。
【问题讨论】:
-
您在同一代码中同时混合了
mysql_*和mysqli_*。你应该只使用mysqli_*,因为 `mysql_* 已被贬值。 -
这个怎么样? mysqli_query() 至少需要 2 个参数 @TimBezhashvyly
-
else if->elseif