Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用prepared语句选择并插入Mysql_Mysql_Sql_Select_Insert - Fatal编程技术网

使用prepared语句选择并插入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 (?)") ; 然而,我完全不知

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

然而,我完全不知道如何合并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();