PHP和MYSQLI检查是否存在用户ID,如果不存在则创建它

时间:2018-11-05 15:58:13

标签: php forms session mysqli

我一直在互联网上寻找这个问题的答案,已经有3个星期了,却找不到任何可以解决的问题。我有一个数据库表,我需要检查。如果该表中有一个compile(),我希望我的代码以我的表单Users_ID标签显示一个update.php链接,并且该数据库中没有action=""表格,那么我想有一个Users_ID页面以一种形式链接,而不是Insertdb.php页面。这是我所拥有的:

PHP代码:

update.php

我的HTML部分如下所示:

HTML代码:

<?php
session_start();
error_reporting(E_ALL);
include_once("dbconnect.php");

$users_id = $_SESSION['user_id'];
$sql = "SELECT * FROM dbtable WHERE uid=$users_id";
if($results = $con->query($sql)) {
  while($display = $results->fetch_array(MYSQLI_ASSOC)) {
    $uid = $display['uid'];
    if($display['uid']==""){
      $pagelink = "insertintodb.php";
    }else{
      $pagelink = "updatedb.php";
    }
  }
  $results->close();
}
?>

我将如何去做?我当前使用的方法是上面我正在使用的方法,但是当我根据页面查看源检查它时,它仅显示<form action="<?php echo $pagelink; ?>" method="POST"> <input type="text" value="" placeholder="Insert Value" name="something" /> <input type="submit" value="Submit Data" name="submit_data_to_db" /> </form> 。请可以帮我。任何和所有帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:1)

您通常使用num_rows方法:

<?php
session_start();
error_reporting(E_ALL);
include_once("dbconnect.php");

$users_id = $_SESSION['user_id'];
$sql = "SELECT * FROM dbtable WHERE uid=$users_id";
if($results = $con->query($sql)) {
  if($results->num_rows() > 0){
      $pagelink = "insertintodb.php";
    }else{
      $pagelink = "updatedb.php";
    }
  }
  $results->close();
}
?>

答案 1 :(得分:-1)

我看到您使用$con,但您未在任何地方声明它。 您可以确认实际存在吗?此时,您的脚本可能会停止执行。

我还要在其中实现一些功能:
 1.当您使用来自外部资源(例如表单)的变量,甚至使用其他变量时,请始终注意SQL注入;
2.您的if & else可以简化为if(当您找到ID时)。对于其他所有情况,您希望使用其他默认行为。像这样:

$pageLink = "insertintodb.php";
if (!empty($display['uid'])) {
    $pageLink = "updatedb.php"
}