php变量中的SQL语句?

时间:2017-07-04 03:17:46

标签: php mysqli

好的,所以我意识到这对于优秀的程序员来说可能看起来很疯狂,但我是一个菜鸟,只是想弄清楚基础知识。我正在尝试建立一个简单的问答网站。我可以向db提交一个问题,但是当我指示用户回答时,我需要输入正确的问题ID(q_id),因为它是我的答案表中的外键。我无法在网上找到任何解决这个问题的方法。我确定我不会使用mysqli_query"或某事,但如果有人能帮我理解如何将正确的值传递给q_id,那将是一个很大的帮助。看到我下面的PHP代码可能会让我有意义:

//set up connection credentials
$servername = "127.0.0.1";
$username = "root";
$password = ""; 
$dbname = "ask";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
//gather the data from the form
$answer = $_POST["answer"];
$q_id = mysqli_query($conn,"select q_id from questions order by q_id 
desc limit 1");


 $sql = "INSERT INTO answers (answer, q_id)  VALUES ('$answer', 
  '$q_id')";
 if (mysqli_query($conn, $sql)) {

 echo "answer submitted";




} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);}



?>

1 个答案:

答案 0 :(得分:0)

当您打开显示问题的页面时,您已经使用了q_id,只需再次使用它。

与stackoverflow URL一样,问题ID在URL上: https://stackoverflow.com/questions/44896448/sql-statement-in-php-variable

因为您还不知道重写,所以您可以使用$ _GET方法来获取q_id。

编辑:

用户insert_id;在提交问题后得到最后一个id,然后你得到了问题的id

if (mysqli_query($conn, $sql)) {
 $last_id = $conn->insert_id;
 echo "answer submitted, id is ".$last_id;




} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);}



?>