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 什么设备可以研究OFDM的60GHz毫米波信道模型
  • ¥15 不知道是该怎么引用多个函数片段
  • ¥15 爬取1-112页所有帖子的标题但是12页后要登录后才能 我使用selenium模拟登录 账号密码输入后 会报错 不知道怎么弄了
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题