我对这个php代码有问题。我已经在 www 中检查了如何在 sql 中检测重复的条目并在发生时显示错误。我不知道为什么sql数据库中的条目运行良好,但无法检测到用户之前何时注册。有什么帮助吗?
<?php
$db_host="localhost";
$db_user="xxx";
$db_password="xxx";
$db_usuario="usuarios";
$db_table_usuario="registro";
$db_connection = mysql_connect($db_host, $db_user, $db_password);
if (!$db_connection) {
die('Error de conexion');
}
$subs_usuario = utf8_decode($_POST['usuario']);
$subs_password = utf8_decode($_POST['password']);
$subs_email = utf8_decode($_POST['email']);
$resultado=mysql_query("SELECT * FROM ".$db_table_usuario." WHERE usuario = '".$subs_usuario."'", $db_connection);
if (mysql_num_rows($resultado)>0){
header('Location: Fail.html');
} else {
$insert_value = 'INSERT INTO `' . $db_usuario . '`.`'.$db_table_usuario.'` (`usuario` , `password` , `email`) VALUES ("' . $subs_usuario . '", "' . $subs_password . '", "' . $subs_email . '")';
mysql_select_db($db_usuario, $db_connection);
$retry_value = mysql_query($insert_value, $db_connection);
if (!$retry_value) {
die('Error: ' . mysql_error());
}
header('Location: Success.html');
}
mysql_close($db_connection);
?>
如果我
没记错的话,我认为您在执行此$resultado=mysql_query("SELECT * FROM '$db_table_usuario' WHERE usuario = '$subs_usuario');
时正在尝试在没有选定数据库的情况下执行查询。
此外,从 PHP 5.5.0 开始,mysql
函数已弃用,因此请改用mysqli
预准备语句。它们与这些mysql
函数一样易于学习和使用,并且可以保护您免受SQL注入的侵害。
<?php
$db_host="localhost";
$db_user="xxx";
$db_password="xxx";
$db_usuario="usuarios";
$db_table_usuario="registro";
$db_connection = mysql_connect($db_host, $db_user, $db_password);
$my_db = mysql_select_db($db_usuario); //select database before query
if (!$db_connection) {
die('Error de conexion');
}
$subs_usuario = utf8_decode($_POST['usuario']);
$subs_password = utf8_decode($_POST['password']);
$subs_email = utf8_decode($_POST['email']);
$resultado=mysql_query("SELECT * FROM '$db_table_usuario' WHERE usuario = '$subs_usuario');
if (mysql_num_rows($resultado)>0){
header('Location: Fail.html');
} else {
$insert_value = 'INSERT INTO `' . $db_usuario . '`.`'.$db_table_usuario.'` (`usuario` , `password` , `email`) VALUES ("' . $subs_usuario . '", "' . $subs_password . '", "' . $subs_email . '")';
mysql_select_db($db_usuario, $db_connection);
$retry_value = mysql_query($insert_value, $db_connection);
if (!$retry_value) {
die('Error: ' . mysql_error());
}
header('Location: Success.html');
}
mysql_close($db_connection);
?>