2014-06-10 157 views
1

我正在使用Eventbrite Jquery插件獲取事件列表並將它們發佈到使用AJAX的php文件中。然後我使用PHP將數據插入到mySQL中。問題是,當我搜索100個事件時,它讓我所有人都回來了,但只有80-85個出現在數據庫中。 任何人都可以請幫助我嗎?PHP插入到mysql後丟失數據

這裏是我的PHP代碼:

include_once('dbheader.php'); 

$event_id = $_POST['ID']; 
$title= $_POST['TITLE']; 
$category= $_POST['CATEGORY']; 
$capacity= $_POST['CAPACITY']; 
$date_created = $_POST['DATE_CREATED']; 
$end_date = $_POST['END_DATE']; 
$status = $_POST['STATUS']; 
$event_url = $_POST['EVENT_URL']; 
$organizer_name = $_POST['ORGANIZER_NAME']; 
$organizer_url = $_POST['ORGANIZER_URL']; 
$privacy = $_POST['PRIVACY']; 
$repeats = $_POST['REPEATS']; 
$venue_address = $_POST['VENUE_ADDRESS']; 
$venue_city = $_POST['VENUE_CITY']; 
$venue_country = $_POST['VENUE_COUNTRY']; 
$venue_id = $_POST['VENUE_ID']; 
$venue_postal = $_POST['VENUE_POSTAL']; 
$venue_region = $_POST['VENUE_REGION']; 
$venue_name = $_POST['VENUE_NAME']; 

if(mysql_query("INSERT IGNORE INTO eventbrite (event_id,title,category,capacity,date_created,end_date,status,event_url,organizer_name,organizer_url,privacy,repeats,venue_address,venue_city,venue_country,venue_id,venue_postal_code,venue_region,venue_name)VALUES ('$event_id','$title','$category','$capacity','$date_created','$end_date','$status','$event_url','$organizer_name','$organizer_url','$privacy','$repeats','$venue_address','$venue_city','$venue_country','$venue_id','$venue_postal','$venue_region','$venue_name')")){ 

echo "Success"; 
} 
else 
{echo "Failed";} 

編輯:

使用real_escape_string固定它。這是我第一次使用mySQL。非常感謝所有幫助過我的人。

P.S:我肯定會在SQL注入和準備的語句

+5

可能與您所擁有的sql注入問題有關。 – jeroen

+0

您需要閱讀[SQL注入](https://www.owasp.org/index.php/SQL_Injection);你是開放的。 –

+0

然後你的問題是SELECT或者INSERT? –

回答

0

首先讀了,考慮的mysql_query切換到PDO prepared statements。對於重複插入來說,它是安全和高性能的。它有一個非常直觀的語法。

其次:嘗試將所有事件存儲在較大的JSON批處理中,以向後端發送一個大請求,並執行多次插入而不是100次小插入。

在這一點上,你可能會用100個併發請求來處理你自己的後端。一些請求被丟棄,並且ajax異步自然地將它們默認爲超時。

0

爲了使所有1請求創建一堆從0 - 99 同步數組我認爲問題是mysql_real_escape_string,而不是。很可能這些事件中的一些具有「或者其中的某些特性,使得它們在沒有逃脫的情況下不可加載。

根據經驗做類似的事情。 創建一個字符串,在其上運行mysql_real_escape_string然後運行mysql_query

+0

非常感謝!這解決了它。 – user3726343

+0

你應該給我最好的答案,所以我得到15代表。 – user3712744