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 (?)") ;

但是我完全不知道如何合并选择

4

3 回答 3

2

您所做的几乎相同,只是更改了查询位。
要从charity_donor 中选择id 为25 的所有记录,您将执行以下查询:

SELECT *
FROM   donor_charity
WHERE  id = 25

现在要查询这个,首先你必须准备它:

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

现在要遍历结果,您必须绑定参数并执行查询。

$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 绑定参数:http ://www.php.net/manual/en/mysqli-stmt.bind-param .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

希望这篇文章有帮助,它是如此简单。 http://www.java2s.com/Code/Java/Database-SQL-JDBC/InsertRecordsUsingPreparedStatement.htm

于 2013-02-05T12:48:29.833 回答
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 回答