0

そのため、最初は多くのテーブルを結合し、エイリアスを使用していましたが、次の表記に簡略化したところ、このエラーが発生しました。

警告: mysqli_stmt::bind_param(): 変数の数が準備済みステートメントのパラメーターの数と一致しません

$sql = "SELECT table.name FROM `table`";

if (!($stmt = $link->prepare($sql))) {
    echo "Prepare failed: (" . $link->errno . ") " . $link->error;
    die();
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error."<br/>";
    die();
}

if (!$stmt->bind_param("s", $country)) {
    echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
    die();
}

table.nameティックでラップしようとすると、次のエラーが発生します。

Prepare failed: (1054) Unknown column 'venues.name' in 'field list'
4

1 に答える 1

4

パラメータはありませんが、バインドしています。したがって、「変数の数が、準備されたステートメントのパラメーターの数と一致しません」

table.name

列名には完全に有効ですが、実際の名前によっては、次のような操作が必要になる場合があります。

`table`.`name`

あなたが探しているかもしれないものは次のとおりです。

$sql = "SELECT `table`.`name` FROM `table` WHERE country = ?";

ただし、エンティティに予約名を使用しないようにする必要があるため、実際にはバッククォートを避ける必要があることに注意してください。

于 2012-05-16T21:36:38.813 に答える