无法使用PHP更新MySQL中的表
我刚开始做一个网站。在注册页面的顶部,有一个搜索栏,您可以在其中找到现有用户。找到并选择用户后,它将自动填写注册表中的值。从那里,您可以更新用户信息。或者创建一个新用户。出于某种原因,无论我输入什么值,它都只调用update函数,而不创建新用户。任何帮助都将不胜感激。谢谢无法使用PHP更新MySQL中的表,php,mysql,html,Php,Mysql,Html,我刚开始做一个网站。在注册页面的顶部,有一个搜索栏,您可以在其中找到现有用户。找到并选择用户后,它将自动填写注册表中的值。从那里,您可以更新用户信息。或者创建一个新用户。出于某种原因,无论我输入什么值,它都只调用update函数,而不创建新用户。任何帮助都将不胜感激。谢谢 //检查数据库以查看是否存在名和姓的用户 $check_exist=“从职员中选择*,其中firstname='$firstname'和lastname='$lastname'; $exist\U result=mysql\U
//检查数据库以查看是否存在名和姓的用户
$check_exist=“从职员中选择*,其中firstname='$firstname'和lastname='$lastname';
$exist\U result=mysql\U查询($check\U exist);
echo“测试存在结果:.$exist\U结果”。
;
//如果用户已存在,则更新用户
如果($exist\U结果)
{
echo“更新函数调用…
”;
对于($i=0;$exist\u row=mysql\u fetch\u数组($exist\u result);$i++)
{
//获取身份证号码
$ID=$exist_行['ID'];
}
//更新员工表
mysql_查询(“更新人员集位置='$position',firstname='$firstname',lastname='$lastname',
地址='$address',城市='$city',州='$state',zipcode='$zipcode',电话='$phone',ss='$ss'
其中ID=“$ID”);
//更新登录表
mysql_查询(“更新登录集ID='$ID',position='$position',username='$username',password='$password',email='$email'其中ID='$ID');
}
//如果数据库中不存在用户,则注册用户
其他的
{
echo“插入函数调用…
”;
//插入工作人员信息
$insert_staff=“插入员工(职位、姓氏、姓氏、,
地址、城市、州、邮编、电话、ss)
值(“$position”、“$firstname”、“$lastname”、“$address”、“$city”,
“$state”、“$zipcode”、“$phone”、“$ss”);
mysql\u查询($insert\u staff);
//这将从staff获取新创建的unqiue ID号,并将其插入登录表中
$get\u id=mysql\u查询(“从staff中选择*
其中firstname='$firstname'和lastname='$lastname'”;
$login\u row=mysql\u fetch\u数组($get\u id);
$eID=$login_行['ID'];
//插入登录信息
$query2=“插入登录(ID、位置、用户名、密码、电子邮件)
值(“$eID”、“$position”、“$username”、“$password”、“$email”)”;
mysql_查询($query2);
}
下面是我得到的错误:
Notice: Use of undefined constant myusername - assumed 'myusername' in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 9
Deprecated: Function session_is_registered() is deprecated in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 9
Notice: A session had already been started - ignoring session_start() in /Applications/MAMP/htdocs/CMS/connectdb.php on line 8
TEST first name:ksdfjlsdkjf3242
TEST last name:lkjdslfkjdslkj
TEST exist_result:Resource id #5
Update function called...
Notice: Undefined variable: ID in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 55
Notice: Undefined variable: ID in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 58
Notice: Undefined variable: ID in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 59
问题是,您正在测试
$exist\u result
,只要查询有效(它返回一个资源并计算为true),它将始终返回true
您需要计算$exist\u result
中的行数,并检查0
行数
我建议切换到PDO/prepared语句,但在您的情况下,您可以使用:
mysql_num_rows($exist_result);
作为对@jeroen的回复,此代码应该有助于@ylhtravis:
if (mysql_num_rows($exist_result)) {
//error code here
} else {
//continue
}
谢谢我不知道它总是会变成真的。我刚开始从资源网站学习php。太有趣了!你们这些家伙非常乐于助人,非常棒!再次感谢你@ylhtravis不客气。请注意,严格地说,它不会返回
true
,而是返回一个资源。哦,如果你不介意的话,我有一个问题。它总是返回一个“资源”。这个数字的确切含义是什么?@ylhtravis只是一些内部PHP标识号,用于帮助区分脚本中的不同资源。请记住(尤其是在执行更新和删除时)可以过滤和转义用户提供的任何数据,包括post、get、server、,会话和cookie数据,以从SQL注入中投影自己。