在php mysqli中使用预准备语句插入select mysql

时间:2014-12-30 06:45:58

标签: php mysql mysqli

我想知道我是否需要这样做。

为了使其更安全,插入到数据库中的所有内容都是从另一个具有从用户发布的特定子句的表中选择的。

我使用 id 作为标识:

$identity = $_POST['id'];

$stmt = $mysqli->prepare ("INSERT into table_one (col_1, col_2, col_3)
         VALUES (?,?,?)");

//This is what I use to do
$stmt >bind_param ("sss", $valua, $valueb, $valuec);

//But now I want to that like this
$stmt >bind_param ("sss", SELECT valuea, valueb, valuec FROM ANOTHERtable WHERE id = $identity);

$list->execute();
$list->close();

有可能吗?这样做的正确方法是怎样的?感谢。

1 个答案:

答案 0 :(得分:2)

您不需要绑定其他表中的值。您只需要为用户提供的值准备这些内容。您可以安全地使用现有值。

$stmt = $mysqli->prepare ("INSERT into table_one (col_1, col_2, col_3)
        SELECT valuea, valueb, valuec FROM ANOTHERtable WHERE id = ?");
$stmt >bind_param ("i", $identity);
$stmt->execute();
相关问题