0

このコード行の何が問題なのか、誰か教えてもらえますか? 私は現在新しく、データベースのバックエンドに接続するために mysqli 準備済みステートメントを使用しようとしています。これまでのところ、データベースを更新することはできないようです。

  $stmt = $mysqli->prepare("INSERT INTO canada VALUES (?,?,?,?,?,?)");
    $stmt->bind_param('sssiss',$_REQUEST["UserID"],$_REQUEST["FirstName"],
                        $_REQUEST["LastName"],$_REQUEST["Age"],$_REQUEST["WhatParty"],
                        $_REQUEST["Electorate"]);

    $stmt->execute();
4

2 に答える 2

1

問題は、パラメータをバインドする最初のパラメータであり、trueではない整数型の2つのフィールドがあることを指定しています。

バインドパラメータ

ユーザーIDと年齢がintで、残りが文字列型の場合、整数の場合はi、文字列の場合はsである必要があります。

- アップデート

$db = new mysqli($server_host, $server_user, $server_password, $server_db);

if (mysqli_connect_errno()) {
    printf("DB error: %s", mysqli_connect_error());
    exit();
}



$stmt = $db->prepare("INSERT INTO canada
                      userid,firstname,lastname,age,whatparty,electorate)
                      VALUES (?,?,?,?,?,?))");

$stmt->bind_param("ississ",$_REQUEST["UserID"],$_REQUEST["FirstName"],
                  $_REQUEST["LastName"],$_REQUEST["Age"],
                  $_REQUEST["WhatParty"],$_REQUEST["Electorate"]);


$stmt->execute();
于 2012-10-22T04:20:33.537 に答える
1

問題は、(?,?,?,?,?,?) パラメータに 6 と you 7があることです。bind_param

試す

 $stmt = $mysqli->prepare("INSERT INTO canada VALUES (?,?,?,?,?,?,?)");
于 2012-10-22T04:13:24.743 に答える