dongtan1845 2019-04-16 09:32
浏览 125
已采纳

我正在插入准备好的语句插入数据,但是当我插入检查重复它给我错误如何解决

if(isset($_POST['submit'])){
//echo "Did you click me";

$username = mysqli_real_escape_string($conn,$_POST['username']);

$sql  = "SELECT count(1) FROM user_register WHERE username = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->bind_result($found);
$stmt->fetch();
if ($found)
{
echo "Email is already exist";
//die;
}
else
{
    echo"Debug";


    $insert_data = $conn->prepare("INSERT INTO  user_register (first_name, last_name, mobile,username,user_password) VALUES (?, ?, ?,?,?)");
$insert_data->bind_param("ssiss", $first_name, $last_name, $mobile,$username,$user_password);
print_r($insert_data);
die;
// set parameters and execute
//$fname=ucfirst($_POST['first_name']);
$first_name = mysqli_real_escape_string($conn,$_POST['first_name']);

$last_name = mysqli_real_escape_string($conn,$_POST['last_name']);
$mobile = mysqli_real_escape_string($conn,$_POST['mobile']);
$username = mysqli_real_escape_string($conn,$_POST['username']);
$user_password = mysqli_real_escape_string($conn,$_POST['user_password']);

    if($insert_data->execute()){
        echo "Inserted";
    }
    else{
        echo"Error";
    }
    $insert_data->close();
        $conn->close();

}


}

I want check email duplicacy in my code with prepared statement and if not available insert otherwise show error but when i check email it is working but it is not inserting new user with new email please help me.

ERROR:Fatal error: Call to a member function bind_param() on boolean in C:\wamp64\www\vaibhav\prepared-statement with session\insert_data.php on line 277

  • 写回答

1条回答 默认 最新

  • douhuai2861 2019-04-16 09:52
    关注
    if(isset($_POST['submit'])){
    //echo "Did you click me";
    
    $username = mysqli_real_escape_string($conn,$_POST['username']);
    
    $sql  = "SELECT count(1) FROM user_register WHERE username = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("s", $username_stmt);
    $username_stmt = $username;
    $stmt->execute();
    $stmt->bind_result($found);
    $stmt->fetch();
     if ($found)
     {
       echo "Email is already exist";
       //die;
     }
    else
    {
       echo"Debug";
    }
    

    you missed one line of code. Hope this works

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题