我的查询有问题,即使变量的值不同,它也会反复插入相同的值。
这是第一页。它包含一个用于创建帐户的随机函数。
function getRandomString($length = 10) {
$validCharacters = "1234567890";
$validCharNumber = strlen($validCharacters);
$result = "";
for ($i = 0; $i < $length; $i++) {
$index = mt_rand(0, $validCharNumber - 1);
$result .= $validCharacters[$index];
}
return $result;
}
$idNo=getRandomString();
function getRandomPassword($length = 6) {
$validCharacters = "qwertyuiopasdfghjklzxcvbnm1234567890";
$validCharNumber = strlen($validCharacters);
$result = "";
for ($i = 0; $i < $length; $i++) {
$index = mt_rand(0, $validCharNumber - 1);
$result .= $validCharacters[$index];
}
return $result;
}
$password=getRandomPassword();
然后将值提交到下面的下一页。提交的值是正确的,因为我先打印出来检查。它总是插入值&#34; 2147483647&#34;对于ID_No,即使这不是随机化值。
$insert = "INSERT INTO person (ID_No, P_Word, E_Status)
VALUES('$userName', '$userPass', 'Applicant')";
$result = mysql_query($insert);
你如何解决这个问题?这是一个错误吗?
答案 0 :(得分:0)
我们只能猜测已发布的代码。
我没看到$ index最终成为$ userName 发布的sql显示userName作为字符串插入,引用它。
ID_No可能是一个整数类型,因此字符串填满了它。
这应该只是插入插入,所以你知道这是错误的。最佳做法是在MySQL配置文件中使用sql_mode ='STRICT_ALL_TABLES'。
答案 1 :(得分:0)
我认为您应该检查id_no列的数据类型。您必须为该列提供双数据类型
答案 2 :(得分:-2)
我认为你的想法是:如果你想把$符号作为变量名,你必须使用字符串连接运算符(这里,在PHP中,它是DOT)。
$insert = "INSERT INTO person (ID_No, P_Word, E_Status) " .
" VALUES( " .
"'" . $userName . "'" . " , " .
"'" . $userPass. "'" . " , " .
"'" . "Applicant. "'" . " ) " ;
$ result = mysql_query($ insert);