(browseroutput.jpg)mysql_to pdo:私はそれを正しくしましたか?
私はPDOに古いmysql_* from
古いチュートリアルを切り替えてイムは右のそれを行うかどうかを知りたいと思いました。 私はmysql_*
とPDOを取得しませんでした、彼らはドライバか、データをフェッチするための別のバリエーションですか?
私のコードは動作する必要がありますが、私は初心者のために動作するとは懐疑的です。変更パラメータを$age
と$wpm
の値に応じたが、プリペアドステートメントを使用して結合
$sth = $dbh->prepare('SELECT * FROM ajax_example WHERE sex = ?');
$sth->execute(array('male'));
クエリとパラメーターます(当然):
<?php
// New PDO variant
try {
$user = "user";
$pass = "";
$pdo = new PDO('mysql:host=localhost;dbname=testdb', $user, $pass);
//build query
$age = $_GET['age'];
$sex = $_GET['sex'];
$wpm = $_GET['wpm'];
$query = "SELECT * FROM ajax_example WHERE sex = '$sex'";
if(is_numeric($age))
$query .= " AND age <= $age";
if(is_numeric($wpm))
$query .= " AND wpm <= $wpm";
$stmt = $pdo->prepare($query);
$display_string = "<table>";
$display_string .= "<tr>";
$display_string .= "<th>Name</th>";
$display_string .= "<th>Age</th>";
$display_string .= "<th>Sex</th>";
$display_string .= "<th>WPM</th>";
$display_string .= "</tr>";
$stmt->execute(array('name' => $name));
foreach ($stmt as $row) {
$display_string .= "<tr>";
$display_string .= "<td>$row[name]</td>";
$display_string .= "<td>$row[age]</td>";
$display_string .= "<td>$row[sex]</td>";
$display_string .= "<td>$row[wpm]</td>";
$display_string .= "</tr>";
}
echo "Query: " . $query . "<br />";
$display_string .= "</table>";
echo $display_string;
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
ここに '$ name'のは何であるのポイントを逃しました? –
私は知っていません..チュートリアルから残っている必要があります..どのように私はそれを改善することができますか? – sinankarateke
これを読んでくださいこのhttps://stackoverflow.com/a/767520/3568847 –