如何检查值是否存在于两个数据库表之一中

时间:2018-03-07 作者:Alfredo Juliano Prince

我有两份登记表,个人登记表。php和学校注册。php。每个都将数据保存在各自不同的表中。每个用户都创建自己独特的用户类型(个人和学校)

在这两个文件上,我都成功地检查了数据库中是否存在电子邮件地址,如果存在,则返回错误消息。然而,现在我需要检查以确保注册时的电子邮件地址在两个表中都不存在。

这很奇怪,因为在第一个代码块(individual register.php)中,它允许我注册,并且它不会给我任何错误,除非我尝试使用我知道存在于该表单对应的表中的电子邮件地址。我在教师名册上也有类似的记录。然而,php根本不允许我注册任何东西,即使我输入了全新的电子邮件地址,也会返回错误消息。请参见代码:

个人注册。php

$results_match_email = $wpdb->get_row( \'SELECT * FROM wp_register where 
artistemail="\'.$_REQUEST[\'artistemail\'].\'"\');
$check_school_email=$wpdb->get_row( \'SELECT * FROM wp_register_teacher where 
schoolemail="\'.$_REQUEST[\'schoolemail\'].\'"\');


if(count($results_match_email) || count($check_school_email) > 0){
  $insert_save=0;
}


else{
    $insert_save=$wpdb->insert("wp_register",$insert_reg);
    $lastid = $wpdb->insert_id;
}   
教师注册。php

$results_match_email = $wpdb->get_row( \'SELECT * FROM wp_register_teacher 
where schoolemail="\'.$_REQUEST[\'schoolemail\'].\'"\');

$check_individual_email=$wpdb->get_row( \'SELECT * FROM wp_register where 
artistemail="\'.$_REQUEST[\'artistemail\'].\'"\'); 


    if(count($results_match_email) || $check_individual_email) > 0)
  {
  $insert_save=0;
  }
   else
   {
      $insert_save=$wpdb->insert("wp_register_teacher",$insert_reg); 
      $lastid_teacher = $wpdb->insert_id; 
   }   

1 个回复
SO网友:newman

您的应用程序没有很好的体系结构。最好的方法是将用户信息保存在一个表中,并使用单独的字段或链接表来保存额外信息。

在您的情况下,可以在一个查询中使用case-use-UNION和check-tables。

正确的方法是使用SELECT COUNT(*) 并检查结果SELECT *

结束

相关推荐

有没有可能在不使用wp-config.php、.htaccess或php.ini中的指令的情况下增加php内存?

我使用的插件由于内存不足而崩溃。但我所在的主机(万神殿)使用git在开发服务器(我有FTP访问权限)和实时服务器(我没有FTP或SSH访问权限)之间进行文件更新。我无法更改wp配置。php和提交文件,因为Dev和Live之间的数据库详细信息不同。php。不允许使用ini文件和中的PHP指令。不允许htaccess。如何为Live增加PHP内存?我可以在主题文件中添加指令吗?类似功能。php?这对插件内存有效吗?