Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Php Prepared语句select inside values()这样做对吗?_Php_Mysqli_Prepared Statement - Fatal编程技术网

Php Prepared语句select inside values()这样做对吗?

Php Prepared语句select inside values()这样做对吗?,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,当您必须在值(通常为值(?)内运行select语句时,这种方法是否正确 我会直接使用插入到。。。在此处选择,不带值子句: INSERT INTO perm (user_id) SELECT id FROM users WHERE username = ?; 更新的PHP代码: $sql = "INSERT INTO perm (user_id) SELECT id FROM users WHERE username = ?"; if ($stmt = $conn->p

当您必须在值(通常为值(?)内运行select语句时,这种方法是否正确


我会直接使用
插入到。。。在此处选择
,不带
子句:

INSERT INTO perm (user_id)
SELECT id FROM users WHERE username = ?;
更新的PHP代码:

$sql = "INSERT INTO perm (user_id) SELECT id FROM users WHERE username = ?";
if ($stmt = $conn->prepare(sql)) {
    $stmt->bind_param("s", $username);
    $stmt->execute();
}

完全正确。不过,您不需要使用
if
条件。这个问题听起来好像您收到了一个错误。你能补充一下吗?可能只要
从username=?
应该足够的用户中选择id即可。
$sql = "INSERT INTO perm (user_id) SELECT id FROM users WHERE username = ?";
if ($stmt = $conn->prepare(sql)) {
    $stmt->bind_param("s", $username);
    $stmt->execute();
}