Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql只在php中插入一些数据_Php_Mysql_Sql - Fatal编程技术网

sql只在php中插入一些数据

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']) &&

使用激活电子邮件中的数据$电子邮件和$key

$result1 mysql\u查询-

结果是,只有
电子邮件
角色
积分
被插入表
用户
。不插入数据项
用户名
密码

$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 FROM
tempusers
WHERE
email
='email'和
activation
='key');$result2=mysql_查询(“从
tempusers
WHERE
email
='email'”;