2015-07-02 54 views
0

我对PHP和mysqli很陌生,并且正试图为我玩的游戏放置一个统计站点。在一个坚果壳中,这个代码1)通过用户(通过URL)查找最后的X架次(这里是1,但可以改变为任意数量),2)Curl的结果,3)将它放入/tmp/sorties.csv,然后4)将数据本地infle /tmp/sortie.csv加载到我的数据库。在加载数据本地infile写入数据库时​​遇到问题

它确实连接到数据库(会员表),并通过成员/玩家名称(回溯为“正在更新”)查询以及游戏信息(每个玩家在游戏中有数据数据库) - 我已将头部注释掉,以便查看回传的内容。

我的网站托管购买第三方,但使用SQL 5.5.32,PHP 5.3.13,是一个Linux/Debian平台。任何(和所有)援助非常感谢,我实际上通过使用这里提供的一些问题和答案写了绝大多数的援助。我确实有这个代码的唯一MySQL版本,它有相同的错误(2天前开始工作不正常),并且希望更新到mysqli可以解决问题。数据库字段在数量和数据类型上都匹配。

//header("Location: /hcman/delsorties.php"); //After sorties put into database - clears any that are not valid 
include 'Data/openi.php'; 

//Collect player name info 
$query = "SELECT name FROM Members"; 
$result=$link->query($query); 

// Array 
$rows = array(); 
    while($row = $result->fetch_array()) 
     { 
      $rows[] =$row['name']; 
     } 

// collect sortie data 
foreach ($rows as $player) 
{ 
$url = "http://csr.wwiionline.com//player_sorties_csv.php?username=".$player."&startsortie=0&sortiecount=1"; 
$path = '/tmp/sortie.csv' ; 
// echo Player name -- works 
echo "<br /><br />Updating for ".$player."<br />" ; 

//Curl to tmp file (aka $path)  
$ch = curl_init($url); 
if($ch === false) 
    { 
    die('Failed to create curl handle'); 
    } 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result=curl_exec($ch); 
if(!curl_exec($ch)) 
    { 
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch)); 
    } 
curl_close($ch); 
file_put_contents($path,$result); 

//show sortie (post Curl) data on screen -- Works 
echo $result ; 

// Input to the database -- Not working 

$sqli = "LOAD DATA LOCAL INFILE '/tmp/sortie.csv' 
       INTO TABLE Sorties 
       FIELDS TERMINATED BY ',' 
       OPTIONALLY ENCLOSED BY '\'' 
       LINES TERMINATED BY '\n' 
       " ; 

$done=$link->query($sqli); 
if (!$done) echo mysqli_error($sqli); 
/*if (mysql_affected_rows() >= 1) { 
$message = "The user was successfully updated!"; 
} 
else 
{ 
$message = "</br>The user update failed:</br> "; 
$message .= mysql_error(); 
} 

echo $message; 
*/ 

} 
$result->close(); 
$link->close(); 
return $rows; 

回答

0

你能相信它 - 而围绕这个网站,我喜欢这个问题"Load data local infile" command not allowed

挖一个完全不同的问题,当我调整我的SQLI字符串连接到的建议在这里,我的代码可以神奇地运行。 ...很有趣...找到解决方案。虽然如果任何人有优化输入我也打开这些建议