2014-05-08 51 views
-2

我可以使用payment_status = rand('pending','success','failed','refunded')進行下面的查詢,或者任何人都可以幫助我解決以下查詢的錯誤。我可以使用rand('等待','成功','失敗','退款')

for ($i=0;$i<100000;$i++) 
{ 
$payment_status = rand('pending','success','failed','refunded');  
$sql = 'INSERT INTO `aa_kkkk` (`id`, `user_id`, `biz_id`, `filing_year`, `filing_month`, `final_return`, `consent_disclosure`, `is_third_party_designee`, `amended_month`, `earliest_date`, `latest_date`, `tax_year_end_month`, `address_change`, `form_type`, `submission_id`, `payment_status`, `transaction_id`, `active`, `xml_submitted`, `date_user_submitted`, `date_xml_sent`, `date_last_ack_attempt`, `date_acknowledged`, `created_date`, `modified_date`, `next_submission_date`, `irs_approved`, `ack_received`, `sch1_received`, `sch1_path`, `user_completed`, `consent_to_submit`, `error_code`, `error_description`, `error_type`, `modifiedby_admin`, `data_masked`, `form_pdf_path`) VALUES 
(Null, ':user_id', ':biz_id', ':filing_year', "c2aaf5544415889e720f042b04551c97'.$i.'", "c9c396be60e066ae92b978c08a3fca0a'.$i.'", "32b20aa703b1128d448321b83fe57d70'.$i.'", "0", "32b20aa703b1128d448321b83fe57d70'.$i.'", "32b20aa703b1128d448321b83fe57d70'.$i.'", "32b20aa703b1128d448321b83fe57d70'.$i.'", "32b20aa703b1128d448321b83fe57d70'.$i.'", "32b20aa703b1128d448321b83fe57d70'.$i.'", "84843320140520033138'.$i.'", ':payment_status', "", ':transaction_id', ':active', "2014-02-21 10:31:35", "2014-02-21 03:31:42", "2014-02-21 03:32:00", "2014-02-21 03:32:00", "2014-02-21 03:11:15", "2014-04-18 11:12:39", NULL, ':irs_approved', ':ack_received', ':sch1_received', "84843320140520033138.pdf'.$i.'", 1, 1, "", "", "", 0, 0, "pf2290_1_84843320140520033138.pdf'.$i.'")'; 
+0

http://www.php.net/manual/en/function.rand.php – PeeHaa

+0

'int rand(int $ min,int $ max)'no,no you can not。我建議編輯該問題以更好地反映您想要做的事情,而不是要求您選擇的(有缺陷的)解決方案提供幫助。另外,問題中絕對沒有mysql--你如何使用'$ payment_status'與「問題」無關。 – AD7six

回答

4
echo rand('pending','success','failed','refunded'); 

警告:蘭特()預計2個參數,4給出

文檔:rand()

所以,不,你不能。不是這樣的。

這將工作:

$values = array('pending','success','failed','refunded'); 
$payment_status = $values[rand(0, sizeof($values)-1)]; 

或者使用array_rand()(得愛PHP ...適用於所有的功能...):

$values = array('pending','success','failed','refunded'); 
$payment_status = $values[array_rand($values)]; 

爲了好玩:你也可以發揮創意並使用shuffle

$values = array('pending','success','failed','refunded'); 
shuffle($values); 
$payment_status = $values[0]; 

雖然這不是任何接近的2運算效率因爲它會首先對數組進行混洗,然後返回其中的第一個元素,而不是從列表中選擇一個隨機元素並將其返回。

4
$rand = $array[array_rand($array = ['pending','success','failed','refunded'])]; 

或者:

$array = ['pending','success','failed','refunded']; 
$rand = $array[rand(0, count($array)-1)]; 

或者......

0

您可以使用以下

$k = array_rand($array); 
$v = $array[$k]; 

看到文檔here

享受:)

1

你也可以這樣做。

$input = array('pending','success','failed','refunded'); 
echo $input[array_rand($input)]; 

我更喜歡這種方法,因爲通過使用這個,你不必指定數組的大小。在某些情況下可能未知。

+0

'我更喜歡這種方法,因爲通過使用這個你不必指定數組的大小' - >是不是[sizeof()](http://nl3.php.net/manual/en/ function.sizeof.php)或[count()](http://nl3.php.net/manual/en/function.count.php)是爲了? :-) – RobIII

+0

@RobIII我也更喜歡較少的代碼行。就像你說過的「PHP ......一切都是......」那麼爲什麼不用一個東西而不是混合多個內置函數呢? –

+0

來自其他平臺,只是偶爾使用PHP我傾向於遠離'模糊'的功能,如array_rand(和所有其他「有時)有幫助,但無處可找到任何其他語言」功能)。這只是我的習慣... – RobIII