我有一個將用戶插入數據庫的腳本。它曾經與MYISAM一起工作,但由於我改爲INNODB,它只插入第一行,然後停止。多個插入不能與INNODB一起使用
這是腳本。它basicaly得到所有的Facebook好友,並檢查用戶是否在數據庫中。如果不是,它會創建一個新的「未註冊」用戶。由於我更改爲INNODB,因此它只插入第一個用戶。我還會發布表創建代碼。有小費嗎?
$data = explode(";", $_POST['data']);
for($i=0; $i<count($data); $i++){
$user = explode("^", $data[$i]);
$fname = $user[0];
$lname = $user[1];
$face_uid = $user[2];
$birthday = $user[3];
$gender = $user[4];
$temp_birth = explode("/", $birthday);
if(count($temp_birth)!=3){
$birthday="0000-00-00";
} else {
$birthday = $temp_birth[2]."-".$temp_birth[0]."-".$temp_birth[1];
}
if(ctype_alnum(str_replace(" ", "", $fname)) && ctype_alnum(str_replace(" ", "", $lname))){
$result = mysql_query("SELECT * FROM popguest.user WHERE face_uid='$face_uid'");
$row=mysql_fetch_array($result);
if(mysql_num_rows($result)==0){
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$size = strlen($chars);
$verify=0;
while($verify==0){
$username='';
for($j = 0; $j < 10; $j++) {
$username .= $chars[ rand(0, $size - 1) ];
}
$result2 = mysql_query("SELECT * FROM popguest.user WHERE username='$username'");
if(mysql_num_rows($result2)!=0){
$verify=0;
}else{
$verify=1;
}
}
$result = mysql_query("INSERT INTO popguest.user (face_uid, username, fname, lname, birthday, gender, registered) VALUES ('$face_uid', '$username', '$fname', '$lname', '$birthday', '$gender', '0')");
echo $fname." ".$lname.";".$face_uid.";".$birthday.";".$gender."\n";
} else {
}
} else {
}
}
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(10) COLLATE latin1_general_ci NOT NULL,
`face_uid` varchar(15) COLLATE latin1_general_ci NOT NULL,
`fname` varchar(25) COLLATE latin1_general_ci NOT NULL,
`lname` varchar(25) COLLATE latin1_general_ci NOT NULL,
`email` varchar(50) COLLATE latin1_general_ci NOT NULL,
`gender` varchar(6) COLLATE latin1_general_ci NOT NULL,
`birthday` date NOT NULL,
`type` int(1) NOT NULL,
`registered` int(1) NOT NULL,
`phone` varchar(15) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `face_uid` (`face_uid`),
UNIQUE KEY `email` (`email`)
) ENGINE=INNODB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
第一個用戶之後會發生什麼?一個錯誤?如果是,哪一個? –
您的陳述讓我注意到我有一些錯誤正在進行中。這就是爲什麼我無法解決他們中的任何一個。謝謝! –