gpt4 book ai didi

php - connect_error 什么都不返回,但代码不工作

转载 作者:行者123 更新时间:2023-11-30 22:34:24 25 4
gpt4 key购买 nike

它总是返回空的 connect_error 值。它正确连接到 mySQL。我想在我的页面上创建简单的注册系统。我是 PHP 和 HTML 的新手,所以我不知道这段代码有什么问题。我认为 MySQL 工作正常,所以可能我的 SQL 代码有问题?

这是我的 PHP 代码:

<?php
$link = @new mysqli('valid localhost', 'valid user', 'valid password', 'valid database');
if ($link->connect_error!=0) {
die('Could not connect: ' . $link->connect_error);
}

$login = $_POST['login'];
$password = $_POST['password'];
$confirm = $_POST['confirmpassword'];
$email = $_POST['email'];

$result = mysql_query($sql, "SELECT COUNT(*) AS num_rows FROM `users` WHERE username='{$login}' LIMIT 1;");
$row = mysql_fetch_array($sql, $result);
if($row["num_rows"] < 0){
header('Location: index.php');
return;
}

if($password != $confirm) {
header('Location: index.php');
return;
}


$login = htmlentities($login, ENT_QUOTES, "UTF-8");
$password = htmlentities($password, ENT_QUOTES, "UTF-8");
$email = htmlentities($email, ENT_QUOTES, "UTF-8");

$sql = sprintf("INSERT INTO `users` (`username`, `password`, `email`) VALUES
('%s', '%s', '%s');",
mysqli_real_escape_string($link, $login),
mysqli_real_escape_string($link, $password),
mysqli_real_escape_string($link, $email));
if (mysql_query($sql, $link)) {
echo "User created successfully!\n";
} else {
echo 'Error creating user: ' . $link->connect_error . "\n";
}
?>

HTML代码:

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>Awesome title</title>
</head>

<body>

Register<br /><br />

<form action="register.php" method="post">

Login: <br /> <input type="text" name="login" /> <br />
Email: <br /> <input type="email" name="email" /> <br />
Password: <br /> <input type="password" name="password" /> <br />
Confirm password: <br /> <input type="password" name="confirmpassword" /> <br /><br />
<input type="submit" value="Register" />

</form>
</body>
</html>

和 MySQL 表:

CREATE TABLE IF NOT EXISTS `users` (
`username` text collate utf8_polish_ci NOT NULL,
`password` text collate utf8_polish_ci NOT NULL,
`email` text collate utf8_polish_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

这是我得到的:

Error creating user:

最佳答案

改变

echo '创建用户时出错:' . $link->connect_error 。 "\n";

echo '创建用户时出错:' . $链接->错误。 "\n";

此外,您正在混合使用 mysql 和 mysqli,并将面向对象与过程混合。

试试这个:

<?php
$link = @new mysqli('valid localhost', 'valid user', 'valid password', 'valid database');
if ($link->connect_error) {
die('Could not connect: ' . $link->connect_error);
}

$login = $_POST['login'];
$password = $_POST['password'];
$confirm = $_POST['confirmpassword'];
$email = $_POST['email'];

$result = $link->query("SELECT COUNT(*) AS num_rows FROM `users` WHERE username='{$login}' LIMIT 1;");
$row = $result->fetch();
if($result->num_rows < 0){
header('Location: index.php');
return;
}

if($password != $confirm) {
header('Location: index.php');
return;
}


$login = htmlentities($login, ENT_QUOTES, "UTF-8");
$password = htmlentities($password, ENT_QUOTES, "UTF-8");
$email = htmlentities($email, ENT_QUOTES, "UTF-8");

$sql = sprintf("INSERT INTO `users` (`username`, `password`, `email`) VALUES
('%s', '%s', '%s');",
$link->real_escape_string($login),
$link->real_escape_string($password),
$link->real_escape_string($email));
if ($link->query($sql)) {
echo "User created successfully!\n";
} else {
echo 'Error creating user: ' . $result->error . "\n";
}
?>

关于php - connect_error 什么都不返回,但代码不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33020433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com