 |
ช่วยประยุกต์ code ให้ทีครับ คือผมอยากได้ code php ที่สามารถเพิ่มข้อมูลลงในฐานข้อมูลโดนข้อมูลไม่จำเป็นต้องถูกต้อง |
|
 |
|
|
 |
 |
|
คือผมอยากได้ code php ที่สามารถเพิ่มข้อมูลลงในฐานข้อมูลโดนข้อมูลไม่จำเป็นต้องถูกต้อง จำนวนไม่ต่ำกว่า 2 แสน record ต่อ 1 ตารางครับ
อันนี้คือ code sql server ที่ผมได้มา
DECLARE @UCode int;
DECLARE @LCode int
DECLARE @i int
DECLARE @char varchar(255);
DECLARE @Marks varchar(255);
DECLARE @num varchar(255);
SET @Lcode = 1
SET @Ucode = 9999
SET @char = 'abcdfghjklmnpqrstvwxyz'
SET @marks='aeiou'
SET @num='123456789'
SET @i=1
WHILE @i<=200000 BEGIN
insert into test_1(code1,name1,email)
select
ROUND(((@Ucode - @Lcode -1) * RAND() + @Lcode), 0) as code,
SUBSTRING(@char,ABS(CAST(CAST(NewID() AS VARBINARY) AS int)) % LEN(@char) + 1, 2) + SUBSTRING(@marks,ABS(CAST(CAST(NewID() AS VARBINARY) AS int)) % LEN(@marks) + 1, 1) + SUBSTRING(@char,ABS(CAST(CAST(NewID() AS VARBINARY) AS int)) % LEN(@char) + 1, 2) as name1,
SUBSTRING(@char,ABS(CAST(CAST(NewID() AS VARBINARY) AS int)) % LEN(@char) + 1, 2) + SUBSTRING(@marks,ABS(CAST(CAST(NewID() AS VARBINARY) AS int)) % LEN(@marks) + 1, 1) + SUBSTRING(@char,ABS(CAST(CAST(NewID() AS VARBINARY) AS int)) % LEN(@char) + 1, 2) + SUBSTRING(@num,ABS(CAST(CAST(NewID() AS VARBINARY) AS int)) % LEN(@num) + 1, 5) + '@hotmail.com'
SET @i=@i+1
END
แต่นำมาประยุกต์ให้ใช้กับ php หรือ sqlyog ไม่เป็นอะครับ.
และอยากให้มีสถานะบอกด้วยว่า ทำงานไปถึงไหนแล้ว.
Tag : PHP, MySQL
|
|
 |
 |
 |
 |
Date :
2013-02-07 01:35:28 |
By :
Baby |
View :
1106 |
Reply :
11 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าคุณอยากได้แนวทางการคิด หรือโค้ดตัวอย่าง นี่พอให้ได้ครับ
แต่อยากได้โค้ดที่เอาไปใช้ได้เลย มันไม่ได้หรอกครับ เพราะผมก็ไม่รู้ว่าฐานข้อมูลคุณมีตารางกี่ตาราง แต่ละตารางมันมีฟิลด์อะไรบ้าง
|
 |
 |
 |
 |
Date :
2013-02-07 01:44:29 |
By :
cookiephp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้มันโค้ด SQL นำไปประมวลผลดูหรือยังหละครับ
|
 |
 |
 |
 |
Date :
2013-02-07 06:02:10 |
By :
deawx |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
http://sixarm.com/about/mysql-create-random-data-text-strings.html
ลองศึกษาตามลิงค์ข้างบนดูครับ
อันนี้ตัวอย่าง
รันใน command mysql เลยนะครับ
# อย่าลืมเลือกดาต้าเบสก่อนละ
Code
use databasename;
drop procedure if exists insert_data;
delimiter $$
create procedure insert_data()
begin
declare i int Default 0 ;
declare random char(20) ;
declare random2 int ;
myloop: loop
set random=conv(floor(rand() * 99999999999999), 20, 36) ;
set random2 =floor(rand() * 100);
insert into a (id,x,y) VALUES (null,random,random2) ;
set i=i+1;
# จำนวน 10000 record
if i=100000 then
leave myloop;
end if;
end loop myloop;
end $$
delimiter ;
call insert_data();
ลองเอาไปประยุกต์เอานะครับ
ถ้าอยากได้ข้อมูลสวยๆลองศึกษาการ insert จากตารางอื่นดูนะครับ เช่น
Code
insert into a (id,x,y)
select null,s,random2 from b where rand();
|
 |
 |
 |
 |
Date :
2013-02-07 07:48:07 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ฐานข้อมูล สมมติขึ้นมาให้ก็ได้ครับ แบบว่าอยาดได้เป็นแนวทางครับ.
ขอบคุณครับ
ส่วน code sql ผมลองเอาไปประยุกต์ใช้ดูแล้วครับ แต่มันก็ error เพราะข้างบนมันเป็น sql server แต่ผมใช้ MYSql และใช้ yog คุมอีกที เพื่อการใช้งานง่ายขึ้น
|
 |
 |
 |
 |
Date :
2013-02-07 09:03:39 |
By :
gungsakab |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าแนวทาง จัดให้เลยครับ
นี่คือโค้ดที่ผมเคยลองสร้างข้อมูลเปล่าๆ มาทดสอบความเร็ว query ครับ
Code (PHP)
<?php
$names = array(
'Max',
'Molly',
'Buddy',
'Bella',
'Jake',
'Lucy',
'Bailey',
'Maggie',
'Rocky',
'Daisy',
'Charlie',
'Sadie',
'Jack',
'Chloe',
'Toby',
'Sophie',
'Cody',
'Bailey',
'Buster',
'Zoe',
'Duke',
'Lola',
'Cooper',
'Abby',
'Harley',
'Ginger',
'Riley',
'Roxy',
'Bear',
'Gracie',
'Murphy',
'Coco',
'Lucky',
'Sasha',
'Tucker',
'Angel',
'Sam',
'Lily',
'Oliver',
'Princess',
);
$jobs = array('Warrior', 'Monk', 'Priest', 'Mage', 'Thief', 'Merchant', 'Bard');
mysql_connect('localhost', 'root', ''); // ติดต่อกับ mysql
mysql_select_db('mygame'); // เลือกฐานข้อมูลหลัก (default database) ในที่นี้ชื่อว่า mygame
// สร้างตาราง players หากยังไม่มีตารางนี้ในฐานข้อมูล
mysql_query("
CREATE TABLE IF NOT EXISTS `players` (
`id` int(10) unsigned NOT NULL auto_increment,
`created` datetime NOT NULL,
`name` varchar(32) NOT NULL,
`job` char(16) character set ascii NOT NULL,
`level` tinyint(4) NOT NULL,
`exp` int(10) unsigned NOT NULL,
`hp` int(10) unsigned NOT NULL,
`mp` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
");
mysql_query("TRUNCATE TABLE `players`"); // ล้างข้อมูลตาราง players
$time = time();
for ($i = 0; $i < 200000; ++$i) {
echo "Row " . ($i + 1) . "/200000\r";
$created = date('Y-m-d H:i:s', $time + mt_rand(0, 2592000)); // สุ่มวันที่สร้าง โดยเริ่มจากวันที่ปัจจุบัน +เพิ่มไปอีก 0 - 30 วัน
$name = $names[array_rand($names)]; // ใช้ array_rand() สุ่ม key ของ array ชื่อผู้เล่น
$job = $jobs[array_rand($jobs)]; // ใช้ array_rand() สุ่ม key ของ array อาชีพ
$LV = mt_rand(1, 99); // สุ่มเลเวล 1 - 99
$EXP = mt_rand(0, $LV * 5) + $LV * $LV * $LV * 8; // สุ่มค่าประสบการณ์
$HP = 10 + mt_rand($base = $LV * 10, $base + $LV * 2); // สุ่มค่า HP
$MP = 5 + mt_rand($base = $LV * 5, $base + $LV * 2); // สุ่มค่า MP
// insert เข้าฐานข้อมูล
mysql_query("
INSERT INTO `players`
(`created`, `name`, `job`, `level`, `exp`, `hp`, `mp`)
VALUES
('$created', '$name', '$job', '$LV', '$EXP', '$HP', '$MP')
");
}
echo "\nComplete";
?>
|
 |
 |
 |
 |
Date :
2013-02-07 10:59:42 |
By :
cookiephp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ่อ ลืมบอกไป เวลาใช้สคริปต์นี้
ให้ใช้จาก command line นะครับ
|
 |
 |
 |
 |
Date :
2013-02-07 11:01:08 |
By :
cookiephp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือเพราะคุณต้องการให้มันแสดงโปรเกรสด้วย ว่าไปถึงไหนแล้ว
ถ้ารันสคริปต์นี้ผ่านบราวเซอร์ มันจะทำแบบนั้นไม่ได้
แต่ถ้ารันผ่านคอมมานด์ไลน์ จะมีลักษณะดังนี้ครับ

|
 |
 |
 |
 |
Date :
2013-02-12 12:21:44 |
By :
cookiephp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือว่าผมใช้ Appserv อะครับ ผมลองใช้ คำสั่งตามคุณ น้องเปรม แล้วขึ้น error ว่า
'tmp' is not recognized as an internal or external command,
operable program or batch file.
|
 |
 |
 |
 |
Date :
2013-02-14 11:11:01 |
By :
gungsakab |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|