我正在使用 Eventbrite Jquery 插件获取事件列表并使用 AJAX 将它们发布到 php 文件。然后我使用 PHP 将数据插入 mySQL。问题是,当我搜索 100 个事件时,它让我全部返回,但只有大约 80-85 个出现在数据库中。 谁能帮我解决这个问题?
这是我的 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 注入(inject)和准备好的语句
最佳答案
首先,考虑从 mysql_query 切换到 PDO prepared statements .它对于重复插入是安全且高性能的。它具有非常直观的语法。
第二:尝试将所有事件存储在一个更大的 JSON 批处理中,以向后端发送一个大请求并执行多次插入而不是 100 个小请求。
此时,您可能正在使用 100 个并发请求来处理您自己的后端。一些请求被丢弃并且 ajax 异步性质默默地超时。
关于php - PHP 插入 mysql 后丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24143678/