我在一个PHP脚本中遇到了一个问题,该脚本在输入一些其他表单字段并插入MySQL时检查税号是否有正确的公司名称。我想要的是放一些控制代码——也许是"从formCompany=的公司中选择不同的formCompany"$formCompany。"或者一些代码,用于检查输入表单中公司名称的taxid是否正确。有人知道如何做到这一点吗?任何例子都是受欢迎的。
我有一个简单地将表单字段中的数据输入MySQL数据库的脚本:
$db=mysql_connect($hostname, $db_user, $db_password);
mysql_select_db($database,$db);
$taxid=mysql_real_escape_string($_POST['taxid']);
$formCompany=mysql_real_escape_string($_POST['formCompany']);
$formOffice=mysql_real_escape_string($_POST['formOffice']);
$formBr=mysql_real_escape_string($_POST['formBr']);
$formContact=mysql_real_escape_string($_POST['formContact']);
//trim
$id=trim($id);
$taxid=trim($taxid);
$formCompany=trim($formCompany);
$formOffice=trim($formOffice);
$formBr=trim($formBr);
$formContact=trim($formContact);
if($_POST['taxid']==''||$_POST['formCompany']=='') {
echo '<p style="color: red">Input relevant data!<p>';
} else {
$sql = "INSERT INTO company (taxid, formCompany,formOffice,formBr,formContact) VALUES ('$taxid','$formCompany','$formOffice','$formBr', '$formContact')";
if(!$result = mysql_query($sql, $db)) {
echo "ERROR: ".mysql_error();
} else {
header("Refresh: 0; url=main.php");
}
}
首先,在if语句之前添加此代码
$taxcheck = mysql_query("SELECT * FROM company WHERE taxid = '" . $taxid . "' ");
if (mysql_num_rows($taxcheck)) { $exists = true; }
else { $exists = false; }
然后更改这条线路
if($_POST['taxid']==''||$_POST['formCompany']=='')
至
if($_POST['taxid'] == "" || $_POST['formCompany'] == "" || $exists == true)
此代码将防止您使用一个税务ID号与多家公司合作。
据我所知,在您的应用程序中,两家公司(formCompany)不能拥有相同的税务id,对吧?如果是,最简单的方法是在company
上创建一个唯一的索引。CCD_ 2。然后,任何插入另一家具有相同税务id的公司的尝试都会引发MySQL错误。
以下是添加唯一索引的查询:
ALTER TABLE `company` ADD UNIQUE INDEX `idx_u_taxid` (`taxid`);
希望它能有所帮助!