我的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 (?)") ;
然而,我完全迷失了如何合并选择
答案 0 :(得分: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
绑定参数: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
答案 1 :(得分:0)
希望这篇文章有所帮助,这很简单。 http://www.java2s.com/Code/Java/Database-SQL-JDBC/InsertRecordsUsingPreparedStatement.htm
答案 2 :(得分:0)
您需要在准备声明后使用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();