這真的很奇怪。奇怪的數組值不應該在那裏引起的MySQL語法錯誤?
基本上,我有發生,因爲在這種串引號一個MySQL語法錯誤:
('Justin Bieber', '12312688'
, 'http://a2.twimg.com/profile_images/1468693614/Inkwell_normal.jpeg', '0'),
('Nicki Minaj', '5422852'
, 'http://a1.twimg.com/profile_images/1520039676/325789956_normal.jpg', '1'),
('Drizzy Drake', '2989144'
,'http://a0.twimg.com/profile_images/1483569177/drake-toronto_normal.jpg', '7'),
('Lil Wayne WEEZY F', '3058376'
,'http://a1.twimg.com/profile_images/712863751/lil-wayne-gq-2_normal.jpg', '6'),
('Kanye West', '4176631'
,'http://a3.twimg.com/profile_images/1132696610/securedownload_normal.jpeg', '4'),
('Wiz Khalifa', '2846894'
,'http://a3.twimg.com/profile_images/1400724773/5fa42d61-2b5e-4b12-ac9f-4e673c97ef16_8_normal.jpg', '8'),
('Beyonce Knowles', '1607181'
,'http://a1.twimg.com/profile_images/140949372/Beyonce_64_normal.jpg', '9'),
('KELENDRIA ROWLAND', '1214446'
,'http://a1.twimg.com/profile_images/1418081050/KELLY_ROWLAND_cover_8181v2_normal.jpg', '10'),
('Lupe Fiasco', '819343'
,'http://a2.twimg.com/profile_images/1450626759/209893_10150145920132282_8128837281_6973183_7422817_o_normal.jpg', '11'),
('Tinie Tempah', '761045'
,'http://a0.twimg.com/profile_images/1315150186/Tinie_Black_Jacket_Pic_normal.jpg', '13'),
('50cent', '4918067'
,'http://a3.twimg.com/profile_images/1508833809/street-king-energy_normal.png', '2'),
('TRINA ', '796672'
,'http://a1.twimg.com/profile_images/1441338027/Trina4372_normal.jpg', '12'),
('iamdiddy', '4012130'
,'http://a1.twimg.com/profile_images/1299211308/OG_FADER_FORT_DAY_4_19_normal.jpg', '5'),
('mediatemple',
'('Justin Bieber', '12312688'
,'http://a2.twimg.com/profile_images/1468693614/Inkwell_normal.jpeg', '0')'
,'http://a2.twimg.com/profile_images/421686554/mt-125x125-dk__d5d6295_normal.jpg', '14'),
('Chris Brown ', '4284795'
,'http://a2.twimg.com/profile_images/1515163027/image_normal.jpg', '3')
更具體地說,本部分,其的賈斯汀比伯相關部分不應該存在:
('mediatemple',
'('Justin Bieber', '12312688'
,'http://a2.twimg.com/profile_images/1468693614/Inkwell_normal.jpeg', '0')'
,'http://a2.twimg.com/profile_images/421686554/mt-125x125-dk__d5d6295_normal.jpg', '14')
這裏是我的實際代碼:
$screennames = array(
0 => "JustinBieber",
1 => "NickiMinaj",
2 => "drakkardnoir",
3 => "LilTunechi",
4 => "kanyewest",
5 => "RealWizKhalifa",
6 => "beyonce",
7 => "KELLYROWLAND",
8 => "LupeFiasco",
9 => "TinieTempah",
10 => "50cent",
11 => "TRINArockstarr",
12 => "iamdiddy",
13 => "mediatemple",
14 => "chrisbrown"
);
for($i = 0; $i < 15; $i++) {
$xml[$i] = @simplexml_load_file('http://api.twitter.com/1/users/show.xml?screen_name=' . $screennames[$i]);
$name[$i] = $xml[$i]->name;
$followers[$i] = $xml[$i]->followers_count;
$imageurl[$i] = $xml[$i]->profile_image_url;
}
$rank=-1;
arsort($followers, SORT_NUMERIC);
foreach ($followers as $key=>$value) {
$rank++;
$ranks[$key]=$rank;
}
for($i = 0; $i < 15; $i++) {
$value[$i] = "('".$name[$i]."', '".$followers[$i]."', '".$imageurl[$i]."', '".$ranks[$i]."')";
}
for($i = 0; $i < 14; $i++) {
$value_string .= $value[$i].",";
}
$value_string .=$value[14];
作爲參考,它查詢Twitter的API,檢索有關每個$screenname
值的特定數據,然後將其連接成一個大字符串(...) VALUES $value_string
,但是在$value[13]
上,似乎只在其中間放置$value[1]
。
到目前爲止我已經嘗試過;
使用implode(總是返回一個函數錯誤)。
只在第一個for循環中使用$value_string .=$value[$i].","
,後面會留下尾隨,
。
更改$screennames
左右的值。
我只是不明白是什麼可能導致此問題。
任何幫助/答案/評論將非常非常非常感謝:)!
更新1
這裏是我的代碼的最後部分,良好的措施:
include("db_conn.php");
$conn = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error()); mysql_select_db($db_name) or die(mysql_error());
$query = "INSERT INTO twitter (name, followers, imageurl, rank) VALUES $value_string";
$result = mysql_query($query) or die(mysql_error());
mysql_close($conn);
按預期工作對我來說肯定不會增加額外的內存(在運行查詢的時候?) – 2011-08-31 04:27:29
不是,但即使它不能解釋爲什麼'$ value [1]'也在'$ value [ 13]'當'$ value_string'被回顯時 – Avicinnian
是可見的問題,如果你死了($ value_string);在你的最後一條語句後 – Ben