sql只在php中插入一些数据
使用激活电子邮件中的数据$电子邮件和$key $result1 mysql\u查询- 结果是,只有sql只在php中插入一些数据,php,mysql,sql,Php,Mysql,Sql,使用激活电子邮件中的数据$电子邮件和$key $result1 mysql\u查询- 结果是,只有电子邮件、角色、积分被插入表用户。不插入数据项用户名,密码 $result2 mysql\u查询- 数据不会从表tempusers 如果我回显while循环中的数据,则返回正确的数据 一定很简单,但我就是看不见。谢谢 代码: include 'core/init.php'; /* database connection*/ if (isset($_GET['email']) &&
电子邮件
、角色
、积分
被插入表用户
。不插入数据项用户名
,密码
$result2 mysql\u查询-
数据不会从表tempusers
如果我回显while循环中的数据,则返回正确的数据
一定很简单,但我就是看不见。谢谢
代码:
include 'core/init.php'; /* database connection*/
if (isset($_GET['email']) && preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_GET['email'])){
$email = mysql_real_escape_string($_GET['email']);
}
if(isset($_GET['key']) && (strlen($_GET['key']) == 32)) {
$key = mysql_real_escape_string($_get['key']);
}
if(isset($email) && isset($key)) {
$result = mysql_query("SELECT * FROM `tempusers` WHERE `email` = '$email' AND `activation` = '$key' ") or die(mysql_error());
while($row = mysql_fetch_array($result)) {
$user_id = mysql_real_escape_string($row['user_id']);
$username = mysql_real_escape_string($row['username']);
$email = mysql_real_escape_string($row['email']);
$password = mysql_real_escape_string($row['password']);
}
$result1 = mysql_query("INSERT INTO `users` (`username`, `email`, `password`, `role`, `credits`) VALUES ('$username', '$email', '$password', 'user', 0)") or die(mysql_error());
$result2 = mysql_query("DELETE FROM `tempusers` WHERE `user_id` = '$user_id'") or die(mysql_error());
if(!$result1) {
echo "Oops your account could not be activated. Please contact the system administrator!";
} else {
header('Location: prompt.php?x=0');
}
} else {
echo "Error. Please contact the system administrator!";
}
?>
这个
$\u get
in=>mysql\u real\u escape\u字符串($\u get['key'])
是小写字母
$\u-GET
是一个,必须用大写字母设置,如下=>$\u-GET
旁注:我注意到您在
$\u GET['key']
等中使用了键
如果您的另一个脚本碰巧使用这个单词作为列引用,您需要在backticks中设置它,因为key
是一个MySQL。我只是想大声说出来
将错误报告添加到文件顶部,这将在生产测试期间有所帮助
error_reporting(E_ALL);
ini_set('display_errors', 1);
另外,我建议您使用,或与一起使用。您确定要执行查询吗?您是否也确定查询至少有一个结果?
$email
已设置,但要设置用户名和密码,您的查询需要至少有一个结果
我还注意到
$\u get['key']
,但我不确定是否有必要将其更改为$\u get['key']
更改为$\u get['key']。还添加了错误报告。我注意到你对mysqli等的评论,我打算在工作完成后更改这些评论。到目前为止,情况没有变化,也没有错误报告。Thanks@kevo添加错误报告是否会返回错误?@kevo另外,添加echo$result1代码>或变量转储($result1)
紧接着$result1=mysql\u查询(“插入到…
以查看传递的内容,以及使用var\u dump()
在所有其他变量上。由于插入了一些数据,我猜查询至少有一个结果。ThanksIt可能会在select查询没有结果的情况下执行insert查询。请阅读Fred的注释。强烈建议启用错误报告。[已解决]整理了一些源于$key code的问题。$result1=mysql_query(“插入用户(用户名,电子邮件,密码,角色,积分)选择username
,email
,password
,“admin”,0 FROMtempusers
WHEREemail
='email'和activation
='key');$result2=mysql_查询(“从tempusers
WHEREemail
='email'”;