如何在php中使用几个SQL SELECT查询作为WHERE子句?
谢谢您的时间。稍微格式化一下会有很大帮助:如何在php中使用几个SQL SELECT查询作为WHERE子句?,php,sql,phpmyadmin,Php,Sql,Phpmyadmin,谢谢您的时间。稍微格式化一下会有很大帮助: $sql = "INSERT into x (y,z,t) VALUES ((SELECT userID FROM users WHERE username ='".$usersql."')," ."'"."(SELECT itemID from items WHERE category ='".$category."')," ."'".$amountdays."')"; 稍加格式化将大有帮助: $sql = "INSERT into x (y,z
$sql = "INSERT into x (y,z,t)
VALUES ((SELECT userID FROM users WHERE username ='".$usersql."'),"
."'"."(SELECT itemID from items WHERE category ='".$category."'),"
."'".$amountdays."')";
稍加格式化将大有帮助:
$sql = "INSERT into x (y,z,t)
VALUES ((SELECT userID FROM users WHERE username ='".$usersql."'),"
."'"."(SELECT itemID from items WHERE category ='".$category."'),"
."'".$amountdays."')";
您应该在准备好的语句中使用PDO或mysqli。然后,您可以为您的值定义变量,并在查询后设置它们。这使得它更具可读性,并且可以防止在代码中注入sql
差不多吧 您应该在准备好的语句中使用PDO或mysqli。然后,您可以为您的值定义变量,并在查询后设置它们。这使得它更具可读性,并且可以防止在代码中注入sql
差不多吧 可能是.。请从项中选择项ID。。。应该是。请从items中选择itemID…但是,如果两个子查询中的任何一个子查询返回多行,则查询将失败。只需调试$sql变量并直接在db上运行结果,以查看错误。实际上,首先在db上创建一个工作查询,然后确保您的$sql生成相同的值,。。从items中选择itemID。。。应该是。请从items中选择itemID…但是,如果两个子查询中的任何一个子查询返回多行,则查询将失败。只需调试$sql变量并直接在db上运行结果,以查看错误。实际上,首先在db上创建一个工作查询,然后确保您的$sql生成相同的值
$stmt = $dbh->prepare("INSERT into x (y,z,t)
VALUES (
SELECT userID FROM users WHERE username = :username,
SELECT itemID FROM items WHERE category = :category,
:amountdays
)";
$stmt->bindParam(':username', $username);
$stmt->bindParam(':category', $category);
$stmt->bindParam(':amountdays', $amountdays);