2011-08-08 45 views
0

工程我收到了'錯誤,插入查詢失敗'從波紋管片段。但是,當輸入到phpmyadmin這條線完美地工作INSERT INTO ****** (time, ad1) VALUES ('$FileName','www.hats.com')插入查詢失敗MySQL錯誤 - 在phpmyadmin幫助

所以,問題不在於數據庫參數,我已經雙重檢查了代碼中的連接設置。 $ countforme的相關循環不超過6或15。任何意見或建議是最受歡迎的。

<html> 
<body> 

<?php 

error_reporting(E_ALL); 
set_time_limit (0); 

$urls=explode("\n", $_POST['url']); 
//$proxies=explode("\n", $_POST['proxy']); 

$target=$_POST['target']; 

$allurls=count($urls); 
//$allproxies=count($proxies); 

//use the new tool box 
require "ToolBoxA4.php"; 
echo "before loops all ok"; 

for ($counter = 0; $counter < $allurls; $counter++) { 
//for ($count = 0; $count <= $allproxies; $count++) { 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$urls[$counter]); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET'); 
curl_setopt ($ch, CURLOPT_HEADER, 1); 
curl_exec ($ch); 
$curl_scraped_page=curl_exec($ch); 

echo "after curl ok"; 

//call the new function parseA1 
$arrOut = parseA1 ($curl_scraped_page); 


$curl_scraped_page=strtolower($curl_scraped_page); 
$haystack=$curl_scraped_page; 
if (strlen(strstr($haystack,$target))>0) { 



$FileName = abs(rand(0,100000)); 
$FileHandle = fopen($FileName, 'w') or die("can't open file"); 
fwrite($FileHandle, $curl_scraped_page); 

echo "after fwrite ok"; 



$hostname="********"; 
$username="****"; 
$password="*****"; 
$dbname="****"; 
$usertable="******"; 

$con=mysql_connect($hostname,$username, $password) or die ("<html><script language='JavaScript'>alert('Unable to connect to database! Please try again later.'),history.go(-1)</script></html>"); 
mysql_select_db($dbname ,$con); 

$right = explode(",", $arrOut[0]); 
$top = explode(",", $arrOut[1]); 
echo count($top); 
for ($countforme = 0; $countforme < 6; $countforme++) { 
//$topnow=$top[$countforme]; 
//echo '$topnow'; 

$query = "INSERT INTO happyturtle (time, ad1) VALUES ('$FileName','www.hats.com')"; 
mysql_query($query) or die('Error, insert query failed'); 

echo "after mysql ok"; 

} 

for ($countforme = 0; $countforme <= 15; $countforme++) { 

//$rightnow = $right[$countforme]; 


$query = "INSERT INTO happyturtle (time, ad1) VALUES ('$FileName','$right[$countforme]')"; 
mysql_query($query) or die('Error, insert query failed'); 

} 

mysql_close($con); 


echo '$FileNameSQL'; 


fclose($FileHandle); 
} 
curl_close($ch); 

} 



?> 

</body> 
</html> 

僅供參考,波紋管toolboxa4.php

<?php 

function strTrim ($strIn, $cutA, $cutB){ 
    //keeps what is between $cutA and $cutB 
    $pieces = explode($cutA, $strIn, 2); 
    $str1 = $pieces[1]; //keep everything after cutA 

    $pieces = explode($cutB, $str1, 2); 
    $strOut = $pieces[0]; //keep everything before cutB    
    return $strOut; 
} 

function arrWords ($strIn, $theStart, $theEnd){ 
    //returns what is between $theStart and $theEnd 
    $cutA = $theStart; 
    $pieces = explode($cutA, $strIn); 
    $pieces[0] = ""; //discard the first piece 

    $cutB = $theEnd; 
    foreach ($pieces as $key => $value) { 
     $arrB = explode($cutB, $value, 2); 
     $arrOut[$key] = $arrB[0]; //keep everything before cutB   
    } 

    return $arrOut; 
} 

function arrElems ($strIn, $tag){ 
    //returns what is between <$tag> and </$tag> 
    $cutA = "<$tag>"; 
    $pieces = explode($cutA, $strIn); 
    $pieces[0] = ""; //discard the first piece 

    $cutB = "</$tag>"; 
    foreach ($pieces as $key => $value) { 
     $arrB = explode($cutB, $value, 2); 
     $arrOut[$key] = $arrB[0]; //keep everything before cutB   
    } 

    return $arrOut; 
} 

function arrElemAB ($strIn, $tagA, $tagB){ 
    //returns what is between <$tagA><$tagB> and </$tagB></$tagA> 
    $cutA = "<$tagA><$tagB>"; 
    $pieces = explode($cutA, $strIn); 
    $pieces[0] = ""; //discard the first piece 

    $cutB = "</$tagB></$tagA>"; 
    foreach ($pieces as $key => $value) { 
     $arrB = explode($cutB, $value, 2); 
     $arrOut[$key] = $arrB[0]; //keep everything before cutB   
    } 

    return $arrOut; 
} 

function DropTag ($strIn, $tag){ 
    //drops <$tag> and </$tag>. $strIn can be a string or an array of strings. $strOut is same type as $strIn. 
    $strA = str_replace("<$tag>", "", $strIn); 
    $strOut = str_replace("</$tag>", "", $strA); 
    return $strOut; 
} 

function arrCompress ($arrIn){ 
    //deletes empty array entries 
    if(!empty($arrIn)){ 
     foreach ($arrIn as $key => $value) { 
      if ($value == "") { 
       unset($arrIn[$key]); 
      }  
     } 
     $arrIn = array_values($arrIn); 
    } 
    return $arrIn; 
} 

function arrDeDup ($arrIn){ 
    //changes duplicate array entries to empty string 
    if(!empty($arrIn)){ 
     foreach ($arrIn as $key1 => $value1) { 
      foreach ($arrIn as $key2 => $value2) { 
       if ($key1 != $key2 and $value1 == $value2) { 
        $arrIn[$key2] = ""; 
       } 
      } 
     } 
    } 
    return $arrIn; 
} 

function arrToString ($arrIn){ 
    //turns an array into a string 
    $strOut = ""; 
    if(!empty($arrIn)){ 
     foreach ($arrIn as $value) { 
      $strOut .= "$value<br>";     
     } 
    } 
    return $strOut; 
} 

function arrContains ($arrIn, $strIn){ 
    //deletes array entries that do not contain $strIn. 
    foreach ($arrIn as &$value) { 
     if (stripos($value, $strIn) === false) { 
      $value = ""; 
     }  
    } 
    return $arrIn; 
} 

function arrNotContain ($arrIn, $strIn){ 
    //deletes array entries that contain $strIn. 
    foreach ($arrIn as &$value) { 
     if (stripos($value, $strIn) !== false) { 
      $value = ""; 
     }  
    } 
    return $arrIn; 
} 

function parseStrA1 ($strToParse){ 
    //drop some tags 
    $strA = DropTag ($strToParse, "b"); 

    //split the file into Top and RHS 
    $strTOP = strTrim ($strA, "<body", "<div id=rhs_block"); 
    $strRHS = strTrim ($strA, "<div id=rhs_block", ">See your ad here"); 

    //get the elements using tags 
    $arrTOP = arrElemAB ($strTOP, "span", "cite"); 
    $arrRHS = arrElems ($strRHS, "cite"); 

    //remove empty elements 
    $arrTOP = arrCompress ($arrTOP); 
    $arrRHS = arrCompress ($arrRHS); 

    //output results 
    $strA = "TOP<br>" 
     . arrToString ($arrTOP) 
     . "<br><br>RHS<br>" 
     . arrToString ($arrRHS); 
    return $strA; 
} 

function parseA1 ($strToParse){ 
    //drop some tags 
    $strA = DropTag ($strToParse, "b"); 

    //split the file into Top and RHS 
    $strTOP = strTrim ($strA, "<body", "<div id=rhs_block"); 
    $strNAT = strTrim ($strA, "<body", "<div id=rhs_block"); 
    $strRHS = strTrim ($strA, "<div id=rhs_block", ">See your ad here"); 

    //get the elements using tags 
    $arrTOP = arrElemAB ($strTOP, "span", "cite"); 
    $arrRHS = arrElems ($strRHS, "cite"); 

    //get the links 
    $arrNAT = arrWords ($strNAT, '<a href="http://', '" '); 
    $arrNAT = arrNotContain ($arrNAT, "oogle"); 

    //remove empty and duplicate elements 
    $arrTOP = arrCompress ($arrTOP); 
    $arrRHS = arrCompress ($arrRHS); 
    $arrNAT = arrDeDup ($arrNAT); 
    $arrNAT = arrCompress ($arrNAT); 

    //combine arrays into strings, comma separated values 
    $arrOut[0] = implode(",", $arrRHS); 
    $arrOut[1] = implode(",", $arrTOP); 
    $arrOut[2] = implode(",", $arrNAT); 

    return $arrOut; 
} 

?>  

此代碼之前已公佈,但作爲老問題被解決,這是一個新的錯誤它是新的。

+1

使用'mysql_error()'輸出實際的mySQL錯誤信息 –

+0

你應該做INSERT INTO ******(time,ad1)VALUES($ FileName,'www.hats.com')而不是INSERT INTO ******(time,ad1)VALUES('$ FileName','www.hats.com')如果你想插入變量文件名而不是文件名$ filename。這不是答案,但我只是注意到了它。 – Brahadeesh

+0

您可以嘗試返回mysql錯誤而不是靜態文本:http://php.net/manual/de/function.mysql-error.php – harpax

回答

0
INSERT INTO ****** (time, ad1) VALUES ('$FileName','www.hats.com') 

應該是這樣的

$sql = "INSERT INTO ****** (time, ad1) VALUES ('".$FileName."','www.hats.com')"; 

注意引號

與字段指定的時間

此外,ID指望它只是exepts整數或時間值,但也有可能我的解釋,你應爲this article命名字段。

+0

謝謝你的建議 - 修好了!但不幸的是這不會導致錯誤。 @DonSeba – user586011