1

私のmysqlクエリは正常に動作しています

INSERT INTO donor_location (pc_id)
SELECT id
FROM pc
WHERE postcode= ?

つまり、郵便番号テーブルから郵便番号 ID を取得し、その ID をdonor_location テーブルに挿入します。mysqli と準備済みステートメントを使用しています

選択部分がなければ、非常に簡単です-次のようなものです

$stmt = $mysqli->prepare("INSERT INTO donor_charity(
id) values (?)") ;

ただし、selectを組み込む方法については完全に迷っています

4

3 に答える 3

2

行うことはほぼ同じで、クエリ ビットを変更するだけです。
ID が 25 の charity_donor からすべてのレコードを選択するには、次のクエリを実行します。

SELECT *
FROM   donor_charity
WHERE  id = 25

これを照会するには、まず準備する必要があります。

$stmt = $mysqli->prepare("
    SELECT *
    FROM   donor_charity
    WHERE  id = ?
");

結果をループするには、param をバインドしてクエリを実行する必要があります。

$stmt->bind_param('d', 25 ); // First param means the type of the value you're 
                             passing. In this example, d for digit.
$stmt->execute();

次に、クエリから返されたデータを保持する配列を設定します。

$row = array();
stmt_bind_assoc($stmt, $row);

次に、返されたデータをループします。

while ( $stmt->fetch () ) {
    print_r($row); // Should now contain the column.
}

ドキュメントについては、以下を参照してください:
準備 : http://www.php.net/manual/en/mysqli.prepare.php .php 実行: http://www.php.net/manual/en/mysqli-stmt.execute.php フェッチ: http://www.php.net/manual/en/mysqli-stmt.fetch.php



于 2013-02-05T13:01:18.847 に答える
0

Prepare ステートメントの後に Bind_param を使用する必要があります。

$sql = "INSERT INTO donor_charity(
id) values (?)
       ";
/* create a prepared statement */
if (!$stmt = $db->prepare($sql)) {
    echo 'Database prepare error';
    exit;
}

 /* bind parameters for markers */
$stmt->bind_param('ssssss', $id);

$id = '123456';

 /* execute query */
$stmt->execute();
于 2013-02-05T13:08:33.477 に答える
0

この投稿がお役に立てば幸いです。とてもシンプルです。 http://www.java2s.com/Code/Java/Database-SQL-JDBC/InsertRecordsUsingPreparedStatement.htm

于 2013-02-05T12:48:29.833 に答える