好的,对不起 - 过去几天我一直在研究这个问题,而且我卡住了...所以我正在寻求建议或者一双新的眼睛来帮助我...
这里的代码要么已经工作,要么已经在phpMyAdmin的sql部分进行过测试......有些背景,我有一个带有两个表,用户和角色的数据库。我试图将用户插入用户数据库(99%的工作时间......),然后在创建用户之后,只要之前没有错误,然后在角色表中创建一行并设置基于用户的角色....看起来很简单,但即使查询在phpmyadmin中工作并且不会导致问题,每次运行时php代码都会失败...用户被创建...并且无法访问其余的该网站,除非我手动将它们添加到角色表...我确信你可以理解为什么我想在用户创建登录时这样做......
=INDEX($B$2:$B$6,MATCH(ROUND(E2,0),$C$2:$C$6))
在第二个查询中,在userID字段中有一个select语句,因为我需要它来获取最后一个人注册的用户ID,所以请记住,这是在用户生成后立即运行,并假设表格是干净的。
你们可以展示的任何帮助或问题的来源将不胜感激....我知道它可能是我错过了...但我看不到它..
Jesse Fender
答案 0 :(得分:0)
Jesse Fender,
我已经看到你编写了select id语句,但它只是一个简单的字符串格式查询,你不是通过添加mysql_Query($ select)来使它成为查询格式
代码在mysql中可以正常工作,因为它不需要使用mysql_query,因为它就像它的查询一样,但是从PHP你需要将字符串转换为查询,所以它就像一个查询..
试试这个:
$select="(SELECT userID FROM users WHERE Username = $uName)";
$lasid = mysqli_query($db,$select);
//sub query to return a user ID
$insert="INSERT INTO roles (userID , isAdmin , isMod , isFormerStaff , isUser , isBanned) VALUES ($lasid , 0 , 0 , 0 , 1 , 0);";
mysqli_query($db,$insert);
if (!mysqli_query($db,$insert)){
echo "User role not created - please add user manually.";
}