Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 限制多个函数中的数据库调用数_Php_Mysql - Fatal编程技术网

Php 限制多个函数中的数据库调用数

Php 限制多个函数中的数据库调用数,php,mysql,Php,Mysql,我创建了几个函数来从MySQL数据库中提取数据 我有一个主查询,它循环遍历赛马卡中的每匹马,并使用函数提取该马的数据。使用这些函数的代码如下所示: //note I'm using select * until I finish knowing what I need to pull// $horses12 = mysqli_query($db, 'SELECT * FROM tom_cards'); while($todayhorse12 = mysqli_fetch_array($hors

我创建了几个函数来从MySQL数据库中提取数据

我有一个主查询,它循环遍历赛马卡中的每匹马,并使用函数提取该马的数据。使用这些函数的代码如下所示:

//note I'm using select * until I finish knowing what I need to pull//

$horses12 = mysqli_query($db, 'SELECT * FROM tom_cards');
while($todayhorse12 = mysqli_fetch_array($horses12)){
$horse = $todayhorse12['Horse'];
$distance = $todayhorse12['Distance'];
$trainer = $todayhorse12['Trainer'];
$jockey = $todayhorse12['Jockeys_Claim'];
$weight = $todayhorse12['Weight'];
$class = $todayhorse12['Class'];

//function calls go here e.g
echo $horse.horselargerace($horse,$db)."<br />";

}

你们有关于野马的索引吗?即使使用大型数据集,也应快速处理指定的查询。您可以按如下方式执行此操作:

$horses = mysqli_query($db, 'SELECT * FROM `horsesrp` WHERE `horse` = "'.$horse.'" ORDER BY Date Limit 1');
$horses = mysqli_query($db, 'SELECT * FROM `horsesrp` WHERE `horse` = "'.$horse.'" ORDER BY Date Limit 1');
$horses = mysqli_query($db, 'SELECT * FROM `horsesrp` WHERE `horse` = "'.$horse.'" ORDER BY Date Limit 1');
$horses = mysqli_query($db, 'SELECT * FROM `horsesrp` WHERE `horse` = "'.$horse.'" ORDER BY Date Limit 1');
$horses = mysqli_query($db, 'SELECT Odds FROM `horsesrp` WHERE `horse` = "'.$horse.'" ORDER BY Date Limit 1');
$sql = 'SELECT `Date` FROM `horsesrp` where `Horse` = "'.$horse.'" ORDER BY Date limit 1';
$horses = mysqli_query($db, 'SELECT * FROM `horsesrp` WHERE `horse` = "'.$horse.'" and Place != "1" ORDER BY Date Limit 1');
$horses = mysqli_query($db, 'SELECT * FROM `horsesrp` WHERE `horse` = "'.$horse.'" and Place ="1" ORDER BY Date');
$horses = mysqli_query($db, 'SELECT Odds FROM `horsesrp` WHERE `horse` = "'.$horse.'" and Place ="1" ORDER BY Date Limit 1');
$horses = mysqli_query($db, 'SELECT * FROM `horsesrp` WHERE `horse` = "'.$horse.'" ORDER BY Date Limit 3');
$horses = mysqli_query($db, 'SELECT Date FROM horsesrp where Horse = "'.$horse.'" and Date >= "'.$startdate.'" AND Date <= "'.$enddate.'" ORDER BY Date');
$horses = mysqli_query($db, 'SELECT Distance FROM horsesrp where Horse = "'.$horse.'"');
 ALTER TABLE horsesrp ADD INDEX Horse (Horse);
有关MySQL索引的更多信息:


连接成功吗?如果超时,可能有很多记录需要处理。如果没有连接,则可能没有到数据库服务器的网络路由。因此,要做的第一件事是从代码中找出它是否正在连接。顺便说一句,您的代码中可能存在SQL注入漏洞,需要开始使用参数化来保护您的应用程序。抱歉,如果代码没有问题,连接也没有问题。我认为它只是太多的数据库连接,无法筛选到许多记录,而我可能能够通过1个连接而不是几个连接更快地提取数据。是的,我没有阅读所有的代码,但是如果你连接每个查询,那就需要先修复。每页只需连接一次。可能是您有太多的记录要为web进程处理—您有多少记录?在离线过程中可能会更好。您如何将其转换为一个查询并将其输入函数?我已经在主帖子中为您发布了我的表结构,因为他按日期排序,是否可以使用索引HorseDateHorse,date将其加速一点?@Alfons:或she。我倾向于建议不要对堆栈溢出进行性别假设,因为它可能会意外地创建一个排除环境。FWIW通常使用性别中立的措辞,如OP。
Field
Type
Null
Key
Default
Extra
ID
int(255)
NO
PRI
NULL
auto_increment
ParentID
int(255)
NO
NULL
Date
date
NO
NULL
Track
varchar(100)
YES
NULL
Runners
varchar(50)
YES
NULL
Going
varchar(50)
YES
NULL
Distance
varchar(50)
YES
NULL
Class
varchar(50)
YES
NULL
Place
varchar(10)
YES
NULL
Losing_Dist
varchar(50)
YES
NULL
Stall
varchar(250)
YES
NULL
Horse
varchar(50)
YES
NULL
Weight
varchar(50)
YES
NULL
Trainer
varchar(50)
YES
NULL
Odds
varchar(50)
YES
NULL
Oddsmovement
varchar(250)
NO
NULL
Jockeys_Claim
varchar(50)
YES
NULL
Comments
varchar(250)
YES
NULL
Race_Name
varchar(250)
YES
NULL
Timetaken
varchar(255)
NO
NULL
OR
varchar(6)
NO
NULL
 ALTER TABLE horsesrp ADD INDEX Horse (Horse);