php mysql插入不工作

php mysql插入不工作,php,mysql,insert,Php,Mysql,Insert,因此,我试图做的是一个非常基本和直接的方法,将记录插入mysql数据库 这只是我以前做过几次的事情,但是由于某种原因,这次我没有用它 因此,在下面几行代码中,我将展示我的代码,它基本上执行以下操作 1-检查数据库中是否存在该用户(现有用户是具有相同电子邮件的用户) 2-如果用户存在于数据库中,那么它将发送一个http响应,状态代码为409,这意味着重复 (无论如何,请注意,这非常有效,这意味着成功地连接到了数据库,并且它能够检索任何确切的用户(如果有的话) 3-如果用户不存在,则应将其插入数据库

因此,我试图做的是一个非常基本和直接的方法,将记录插入mysql数据库

这只是我以前做过几次的事情,但是由于某种原因,这次我没有用它

因此,在下面几行代码中,我将展示我的代码,它基本上执行以下操作

1-检查数据库中是否存在该用户(现有用户是具有相同电子邮件的用户)

2-如果用户存在于数据库中,那么它将发送一个http响应,状态代码为409,这意味着重复

(无论如何,请注意,这非常有效,这意味着成功地连接到了数据库,并且它能够检索任何确切的用户(如果有的话)

3-如果用户不存在,则应将其插入数据库中(问题在于此)

我的代码

 //Checking if the user exist
 $result = mysql_query("SELECT * FROM $table_name WHERE email='".$post_email."'",$con) or die ('Error: '.mysql_error ());
 $num_rows = mysql_num_rows($result);

 if($num_rows > 0){
  // Close Connection
   mysql_close($con);

  echo "409";

 }
 else{
     mysql_query("INSERT INTO samam_users (username,password,email) VALUES ('ALI','AHMED','amsh-1992@hotmail.com')",$con);
    // Select the record
    $user_id = mysql_insert_id();
    $result = mysql_query("SELECT * FROM $table_name WHERE email='".$post_email."'",$con) or die ('Error: '.mysql_error ());
     // Close Connection
     mysql_close($con);

     echo "200 " . $result['username'];
  }
我在谷歌上搜索了这个问题的可能解决方案,但是我遇到的所有类似问题都是因为语法错误


有什么建议吗?提前感谢:)

您收到的确切错误消息是什么?请把它复制/粘贴到这里

另外,我看到的唯一奇怪的事情是,您正在使用变量$table_name执行SELECT命令,而在INSERT命令中,您正在硬编码一个表名。。?也许就是这样

插入到samam_用户中

只是把相同的表名变量放在那里? 插入到$table\u名称中


如果有帮助,请告诉我。:)

您收到的确切错误消息是什么?请把它复制/粘贴到这里

另外,我看到的唯一奇怪的事情是,您正在使用变量$table_name执行SELECT命令,而在INSERT命令中,您正在硬编码一个表名。。?也许就是这样

插入到samam_用户中

只是把相同的表名变量放在那里? 插入到$table\u名称中

如果有帮助,请告诉我。:)

mysql_error()将为您提供有关查询无法工作的原因的信息—允许您对其进行调试

另外,不要使用mysql,它将被弃用,并且有更好更安全的选项,如MySQLi或PDO

mysql_error()将为您提供有关查询无法工作的原因的信息—允许您对其进行调试


也不要使用mysql,它将被弃用,还有更好更安全的选项,比如MySQLi,或者最好是PDO,我想你必须把INSERT命令中的所有值都用双引号而不是单引号引起来,我想你必须把INSERT命令中的所有值都用双引号引起来,而不是单引号引起来,你会遇到什么错误?你做了什么来调试这个?我在代码中没有看到错误检查或处理。您应该使用
mysql\u error()
查看mysql报告的错误。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。您还完全了解insert和select语句之间的一个明显区别是表名和字段的显式表达式。也许有什么不对劲?您应该发布表架构。打字错误很常见。你会犯什么错误?你做了什么来调试这个?我在代码中没有看到错误检查或处理。您应该使用
mysql\u error()
查看mysql报告的错误。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。您还完全了解insert和select语句之间的一个明显区别是表名和字段的显式表达式。也许有什么不对劲?您应该发布表架构。拼写错误非常常见。你的问题提醒我我没有使用die(mysql_error());,使用它,是的,它有帮助。谢谢,@dootzkyyou非常欢迎:)周末愉快@abdel rahman shoman你的问题提醒我没有使用die(mysql_error());,使用它,是的,它有帮助。谢谢,@dootzkyyou非常欢迎:)祝你周末愉快@abdel rahman shomanI刚刚忘记打印错误消息,所以是的,我打印了并解决了问题Thnaks,@JohnnyFaldo我只是忘记打印错误消息,所以是的,我打印了并解决了问题Thnaks,@JohnnyFaldo
$sql  = "INSERT INTO samam_users (username,password,email) VALUES ('ALI','AHMED','amsh-1992@hotmail.com')";


if(!mysql_query($sql,$con)) {
   die(mysql_error());
}else {
   echo 'inserted succesfully'; 
}