1

MySQL テーブルにデータを挿入しようとしていますが、うまくいきません。私のコードは次のようになります:

$mysqli = mysqli_connect("localhost","login info");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (isset($_POST['submit'])) {
    $number = $_POST['number'];
    $road = $_POST['road'];
    $postcode=$_POST['postcode'];
    $price=$_POST['price'];
    $type=$_POST['type'];
    $bedrooms=$_POST['bedrooms'];
    $agent=$_POST['agent'];
    $featured=$_POST['featured'];
    $keywords=$_POST['keywords'];

    $mysqli->query("
        INSERT INTO listings-rent
            (number, road, postcode, price, type, bedrooms, agent, featured, keywords)
        VALUES
            ('$number','$road','$postcode','$price','$type','$bedrooms','$agent','$featured','$keywords')");
}

接続は問題なく、エラーは返されません。

4

4 に答える 4

6

テーブル名には英数字以外の文字が含まれているため、バッククォートで囲む必要があります。

INSERT INTO `listings-rent` (...) VALUES (...)

また、値をパラメータ化してください。

于 2013-02-09T15:56:43.473 に答える
4

このドキュメント-に記載されているように、テーブル名には、MySQL で引用符で囲まれていないテーブル名としてサポートされていない文字が含まれています。これを試して:

$mysqli->query("INSERT INTO `listings-rent` (number, road, postcode, price, type, bedrooms, agent, featured, keywords) VALUES ('$number','$road','$postcode','$price','$type','$bedrooms','$agent','$featured','$keywords')");

エラーを表示するには、ここでecho $mysqli->error;言及されているものを使用できます。

于 2013-02-09T16:03:03.500 に答える
1

おそらくテーブル名に `` がありません

私は提案します:

    if (TRUE == $mysqli->query("INSERT INTO `listings-rent` (number, road, postcode, price, type, bedrooms, agent, featured, keywords) VALUES ('$number','$road','$postcode','$price','$type','$bedrooms','$agent','$featured','$keywords')"))

        echo "its working!"

    else

         echo $mysqli->error;

このようにして、問題が表示されます

他のオプション失敗したクエリを印刷し、phpmyadminを使用して手動で挿入し、なぜ機能しないかを確認することをお勧めします

于 2013-02-09T16:05:42.200 に答える