我想知道我是否需要这样做。
为了使其更安全,插入数据库的所有内容都是从用户发布的具有特定子句的另一个表中选择的。
我使用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();
Run Code Online (Sandbox Code Playgroud)
是否可以?正确的方法是如何做到这一点?
您不需要绑定其他表中的值。您只需为用户提供的值准备这些即可。您可以安全地使用现有值。
$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();
Run Code Online (Sandbox Code Playgroud)