準備済みのステートメントを使用してデータを選択する簡単なPHPスクリプトを作成しようとしています。現在、thisチュートリアルをソースとして使用しています。スクリプトを呼び出すと、error.logにエラーはありませんが、データは表示されません。ここに私のスクリプトは次のとおりです。プリペアドステートメントでシンプルなPHPを選択する結果が表示されない
<?php
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM Regions WHERE id=?");
$stmt->bind_param("i", $_POST['id']);
$stmt->execute();
$result = $stmt->get_result();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$name[] = $row['name'];
$center[] = $row['center'];
$content_string[] = $row['content_string'];
}
}
$stmt->close();
echo $name;
echo $center;
echo $content_string;
$conn->close();
?>
私の構造は次のようになります。
私は無駄に http://URL/php/protected.php?id=1とhttp://URL/php/protected.phpを呼び出すことによって、出力にアクセスしようとしています。私はif($result->num_rows > 0)
が評価されないので、エラーが起こっていることを絞り込んだ。それで、私はエラーが私のSQLステートメントになければならないことを理解します。
'$ stmt-> execute'は真か偽ですか?あなたは実行のエラーをチェックしましたか? – chris85
@ chris85わかりません。どうすれば確認できますか? – taurus
'int'は、それがあなたがしようとしているものであれば、小数点以下48桁を保持できません。 – chris85