2016-11-27 1 views
-1

私は自分のデータベースにURLを入れた場合、URLに行き、どのHTTPコードが取得されているかを確認するコードを取得しますが、現在はHTTP-ライトの代わりにコード0。mysqli_fetch_assocが動作するのはなぜですか?

$username = "root"; 
$password = "luca170385"; 
$hostname = "localhost"; 

$dbhandle = mysqli_connect($hostname, $username, $password) 
or file_put_contents($filename, date("Y-m-d H:i:s")."Unable to connect to database", FILE_APPEND); 
echo "Connect to MySQL<br>"; 

$selected = mysqli_select_db($dbhandle , "accounts") 
or file_put_contents($filename, date("Y-m-d H:i:s")."Could not select database<br>", FILE_APPEND); 
echo "Selected Database<br>"; 

$sql = "SELECT `address` FROM `url` WHERE `code` IS NULL"; 

if ($result = mysqli_query($dbhandle, $sql)){ 

    while ($row = mysqli_fetch_assoc($result));{ 
    printf ($row['address']); 
    $output = "{$row['address']}"; 
    echo "{$row['address']}"; 
    $handle = curl_init($sql); 
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE); 

    $response = curl_exec($handle); 

    $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE); 
    $update = "UPDATE url SET `code`= $httpCode WHERE `address` = $sql"; 
    echo "$update.<br>"; 
    echo "$handle.<br>"; 
    echo "$httpCode.<br>"; 

    mysqli_query($dbhandle, $update); 
    echo "{$row['address']}"; 

    curl_close($handle); 
    } 
}else { 
    echo 'Not working'; 
} 
+1

'しばらく($行= mysqli_fetch_assoc($結果));'あなたはセミコロンことがわかり<<<?これは "文の終わり"の文字なので、PHPでは "有効な"ステートメントなので、エラーは発生しませんでした。 –

+1

per http://php.net/manual/en/language.basic-syntax.instruction-separation.php * "CやPerlの場合と同様に、PHPは各ステートメントの最後にセミコロンで終了するよう指示しています。 PHPコードのブロックの終了タグは、自動的にセミコロンを意味するので、PHPブロックの最後の行を終了するセミコロンを持つ必要はありません。ブロックの終了タグには直後の改行が含まれています –

+0

Btw、セミコロンの上でクエリが失敗しています。そのクエリーをエコーし​​て、それが何をするかを見るでしょう。 –

答えて

1

のコメントをご確認ください: -

<?php 
error_reporting(E_ALL);// check all type of error 
ini_set('display_errors',1);// display those errors 
$username = "root"; 
$password = "luca170385"; 
$hostname = "localhost"; 

$dbhandle = mysqli_connect($hostname, $username, $password, "accounts"); 
/*or file_put_contents($filename, date("Y-m-d H:i:s")."Unable to connect to database", FILE_APPEND); 
echo "Connect to MySQL<br>";*/// from where this $filename come from? 

/*$selected = mysqli_select_db($dbhandle ,) 
or file_put_contents($filename, date("Y-m-d H:i:s")."Could not select database<br>", FILE_APPEND); 
echo "Selected Database<br>";*/ //not needed 

$sql = "SELECT `address` FROM `url` WHERE `code` IS NULL"; 

if ($result = mysqli_query($dbhandle, $sql)){ 

    while ($row = mysqli_fetch_assoc($result)){ // remove ; 
     printf ($row['address']); 
     $output = $row['address']; // remove {} and "" 
     echo $row['address']; // remove {} and "" 
     $handle = curl_init($sql); 
     curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE); 

     $response = curl_exec($handle); 

     $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE); 
     $update = "UPDATE url SET `code`= $httpCode WHERE `address` = $output"; // not $sql 
     echo "$update.<br>"; 
     echo "$handle.<br>"; 
     echo "$httpCode.<br>"; 
     mysqli_query($dbhandle, $update); 
     echo $row['address'];// remove {} and "" 
     curl_close($handle); 
    } 
}else { 
    echo 'Not working'; 
} 
+0

私は、コードが複数のカウントで失敗しているのを見て、答えを投稿しないように(コメントのみ)決定しました。 –

+0

'echo 'ここでは役に立ちません。'; 'はここでは役に立ちません。また、クエリに対して適切なエラー処理を含める必要があります。 –

2

;は終了するため、空です。

;を削除するだけで済みます。

+1

*「私は思う」* - わからない場合は削除する必要があります。私は確かに1つです。 –

関連する問題