2017-06-26 8 views
-1

私はPDOを学んでいます。以下はなぜ機能しないのですか?私の間違いはどこですか?
私はちょうど秒より高い数字を検索するクエリをしたいです .................................. ................PHP:私のPDOが選択されないのはなぜですか?

if ($_SERVER['HTTP_X_FORWARD_FOR']) { 
$ipaddress = $_SERVER['HTTP_X_FORWARD_FOR']; 
} else { 
$ipaddress = $_SERVER['REMOTE_ADDR']; 
} 

$user = "open"; 
$password = "r23sSF32"; 
$database_name = "open2"; 
$hostname = "localhost"; 

$dsn = 'mysql:dbname=' . $database_name . ';host=' . $hostname; 

$conn = new PDO($dsn, $user, $password); 

$sql = "SELECT MAX(seconds) AS seconds FROM `opentill` WHERE ipaddress='$ipaddress'"; 
$conn->query($sql) as $row 

$largests = $row['seconds']; 
+0

'$ ipaddress'は未定義ですか? '$ conn-> query($ sql)as $ row'も無効な構文です。エラー報告を使用する。 – chris85

+0

私は$ ipaddressを定義して上記のコードに追加していませんでしたが、今はそこにあります。 $ conn-> query($ sql)の代わりに$行として何を入れますか? – aaandy

+1

これはフライ*の質問に*編集されるようです。この '$ conn-> query($ sql)as $ row'は不完全です。 'foreach'がありません。 –

答えて

1

代わりに準備文を使用してみてください。ここには(テストされていない)例があります:

$stmt = $conn->prepare("SELECT MAX(seconds) AS seconds FROM `opentill` WHERE ipaddress = :ipaddress"); 
$stmt->bindParam(":ipaddress", $ipaddress); // Note: bindParam binds to the REFERENCE of the variable passed, only evaluated when execute() is called 
$stmt->execute(); 
$result = $stmt->fetchColumn(); 

$resultにはその列の値が含まれています。

+0

から最高の番号を取得するクエリをしたい、ありがとう – aaandy

関連する問題