使用prepared语句选择并插入Mysql
我的mysql查询工作正常使用prepared语句选择并插入Mysql,mysql,sql,select,insert,Mysql,Sql,Select,Insert,我的mysql查询工作正常 INSERT INTO donor_location (pc_id) SELECT id FROM pc WHERE postcode= ? i、 e从邮政编码表中获取邮政编码id,然后将该id插入到地址表中。 我正在使用mysqli和准备好的语句 如果没有选择的部分,这将是相当容易的-像这样的东西 $stmt = $mysqli->prepare("INSERT INTO donor_charity( id) values (?)") ; 然而,我完全不知
INSERT INTO donor_location (pc_id)
SELECT id
FROM pc
WHERE postcode= ?
i、 e从邮政编码表中获取邮政编码id,然后将该id插入到地址表中。
我正在使用mysqli和准备好的语句
如果没有选择的部分,这将是相当容易的-像这样的东西
$stmt = $mysqli->prepare("INSERT INTO donor_charity(
id) values (?)") ;
然而,我完全不知道如何合并select(选择)希望这篇文章能有所帮助,因为它太简单了。
您所做的几乎相同,只是更改了查询位。
要从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.
}
有关文档,请参阅:准备:
绑定参数:
执行:
Fetch:
您需要在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();