我有一个PHP文件,用于检查是否已经在DB上创建了通过$ _POST提供的3个可能单词中的任何一个。
如果任何DB记录中存在任何这些单词,则会回显错误。
如果任何DB记录中都不存在这些词,则它会执行INSERT查询。
此代码正确检查3个给定单词(如果给定)中的任何一个是否存在,如果存在,则错误得到正确回显。但如果没有这些,网站只是冻结,没有插入。
如果所有IF语句都为假,我怎么能要求PHP运行INSERT查询(现在放在ELSE语句中的内容)?
$ca_key1 = $_POST['ca_key1'];
$ca_key2 = $_POST['ca_key2'];
$ca_key3 = $_POST['ca_key3'];
if ($ca_key1!=="" || $ca_key2!=="" || $ca_key3!==""){
$selectKeys = mysqli_query($con, "SELECT ca_key1,ca_key2,ca_key3 FROM ws_campaigns WHERE ca_fk_us_id='$id'");
if ($ca_key1!==""){
while($registroKeys = mysqli_fetch_array($selectKeys)){
if ($registroKeys['ca_key1']===$ca_key1 || $registroKeys['ca_key2']===$ca_key1 || $registroKeys['ca_key3']===$ca_key1){
echo "No se ha creado la campaña. La palabra ".$ca_key1." ya está siendo utilizada en una campaña previa.";
}
}
}
else if ($ca_key2!==""){
while($registroKeys = mysqli_fetch_array($selectKeys)){
if ($registroKeys['ca_key1']===$ca_key2 || $registroKeys['ca_key2']===$ca_key2 || $registroKeys['ca_key3']===$ca_key2){
echo "No se ha creado la campaña. La palabra '".$ca_key2."' ya está siendo utilizada en una campaña previa.";
}
}
}
else if ($ca_key3!==""){
while($registroKeys = mysqli_fetch_array($selectKeys)){
if ($registroKeys['ca_key1']===$ca_key3 || $registroKeys['ca_key2']===$ca_key3 || $registroKeys['ca_key3']===$ca_key3){
echo "No se ha creado la campaña. La palabra '".$ca_key3."' ya está siendo utilizada en una campaña previa.";
}
}
}
else{
//DEVOLUCIÓN ID CAMPAÑA
if ($result = $con->query("INSERT INTO ws_campaigns (ca_id, ca_name, ca_content, ca_fk_us_id, ca_img, ca_prefix,ca_key1,ca_key2,ca_key3) VALUES ('','$ca_title', '$ca_content','$id','$ca_img','$ca_prefix','$ca_key1','$ca_key2','$ca_key3')")) {
echo $con->insert_id;
}
}
}
else{
//DEVOLUCIÓN ID CAMPAÑA
if ($result = $con->query("INSERT INTO ws_campaigns (ca_id, ca_name, ca_content, ca_fk_us_id, ca_img, ca_prefix,ca_key1,ca_key2,ca_key3) VALUES ('','$ca_title', '$ca_content','$id','$ca_img','$ca_prefix','$ca_key1','$ca_key2','$ca_key3')")) {
echo $con->insert_id;
}
}
答案 0 :(得分:0)
我的建议是让另一个else if
作为支票
else if(empty($ca_key3) && empty($ca_key2) && empty($ca_key1))
{
}
明确确保
答案 1 :(得分:0)
检查执行查询时结果会发生什么:
$result = mysqli_query(...);
if (!$result) {
die('error: ' . mysql_error());
}
它可能会失败,错误信息会告诉你原因。
答案 2 :(得分:0)
最后,正如Fred -ii-所提到的那样,解决这个问题的方法是创建单个INSERT查询,组合AND,OR以便对数据库进行单一检查。
这种方式正确解决了问题:
var path = require('path');
if( ! path.isAbsolute(myPath)) {
//...
}