无法将数据插入mysqli数据库

时间:2014-02-13 04:53:22

标签: php mysqli

Js小心翼翼地查看表单:http://jsfiddle.net/aBp34/  表单工作得很好,只是我无法将任何数据插入数据库。  令人惊讶的是,没有产生错误!

*错误:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在''name','nric','hp','gender','occupation','ins_orga','events','size'附近使用正确的语法价值观(第1行的kalai'

以下是php中的mysqli命令:  任何帮助将不胜感激:)

    <?php
        if(isset($_POST['submitted']))
        {
            if(empty($_POST['name']))
            {
                $name=NULL;
                echo'Please fill up your name!'.'</br>';
            }
            else
            //to check name(char only)
                if(!empty($_POST['name']))
                {
                    $name=$_POST['name'];
                    $pattern='/([[:alpha:]]|[[:space:]])/';
                    if(!preg_match($pattern, $name))//slighly silly but it echo only if preg_match mismatch
                    {
                        echo 'Please key in a valid name!'.'</br>';
                    }
                }
             // to check NRIC(only numbers and size=12) 
                if(empty($_POST['nric']))
                {
                    $nric=NULL;
                    echo'Please key in your NRIC!'.'</br>';
                }
            else
                if(!empty($_POST['nric']))
                {
                    $nric=$_POST['nric'];
                    $pattern='/[0-9]{12}/';
                    if(!preg_match($pattern, $nric))
                    {
                        echo 'Please key in a valid NRIC number!'.'</br>';
                    }
                }
                //to check h/p number
                if(empty($_POST['hp']))
                {
                    $hp=NULL;
                    echo'Please key in your H/P Number!'.'</br>';
                }
                else
                if(!empty($_POST['hp']))
                {
                    $hp=$_POST['hp'];
                    $pattern='/(\\d{10})/';
                    if(!preg_match($pattern, $hp))
                    {
                        echo 'Please key in a valid Mobile number!'.'</br>';
                    }
                }

                //to check email

                if(empty($_POST['email']))
                {
                    $email=NULL;
                    echo'Please key in your email id!';
                }
                else
                if(!empty($_POST['email']))
                {
                    $hp=$_POST['email'];
                    $pattern='/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!"?(?>\\\[ -~]|[^"]){65,}"?@)(?>([!#-\'*+\/-9=?^-~-]+)(?>\.(?1))*|"(?>[ !#-\[\]-~]|\\\[ -~])*")@(?!.*[^.]{64,})(?>([a-z\d](?>[a-z\d-]*[a-z\d])?)(?>\.(?2)){0,126}|\[(?:(?>IPv6:(?>([a-f\d]{1,4})(?>:(?3)){7}|(?!(?:.*[a-f\d][:\]]){8,})((?3)(?>:(?3)){0,6})?::(?4)?))|(?>(?>IPv6:(?>(?3)(?>:(?3)){5}:|(?!(?:.*[a-f\d]:){6,})(?5)?::(?>((?3)(?>:(?3)){0,4}):)?))?(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?>\.(?6)){3}))\])$/iD';
                    if(!preg_match($pattern, $hp))
                    {
                        echo 'Please key in a valid email id!'.'</br>';
                    }
                }

                //to check gender

                if(!isset($_POST['gender']))
                {
                    $gender=NULL;
                    echo"Kindly select your gender!".'</br>';
                }
                else
                {
                    $gender=$_POST['gender'];
                }
                //to check occupation

                if(!isset($_POST['occupation']))
                {
                    $occupation=NULL;
                    echo"Kindly select your occupation!".'</br>';
                }
                else
                {
                    $occupation=$_POST['occupation'];
                    if(empty($_POST['ins_orga']))
                    {
                        echo'Please name your institution or organization!';
                    }
                    else
                    {
                        $ins_orga=$_POST['ins_orga'];
                    }
                }

                //to check events

                 if(!empty($_POST['events']))    
                {
                     $events = $_POST['events'];

                }
                if(!isset($events)) 
                {
                 echo("<p>You didn't select any events!</p>\n").'</br>';
                } 
                else
                {
                $nevents = count($events);

                echo"You selected ".$nevents ."events: ".'</br>';
                for($i=0; $i < $nevents; $i++)
                {
                 echo($events[$i] . " ");
                }


                }

                if(empty($_POST['size']))
                {

                echo"please select your size".'</br>';

                }
                else
                {
                  $size=$_POST['size'];
                  echo $size;

                }

                if(isset($_POST['area']))
                {
                    $area=$_POST['area'];
                }
                if(isset($_POST['captain_code']))
                {
                    $captain_code=$_POST['captain_code'];
                }
                if(isset($_POST['address']))
                {
                    $address=$_POST['address'];
                }
                if(isset($_POST['s1']))
                {
                   $s1=$_POST['s1']; 
                }
                // check all

                if('$name'&&'$nric'&&'$hp'&&'$email'&&'$gender'&&'$occupation'&&'$events'&&'$size')
                {

                    echo "you have successfully registered! Your code is: ";
                    // set uniqid

                    $order_id = uniqid(rand(10,1000),false);
                    $order_id = substr($order_id,rand(0,strlen($order_id) - 4),4);
                    echo hexdec($order_id);              
                    $mysqli=new mysqli('localhost','root','','volunteer-registration');
                    if(mysqli_connect_errno())
                    {
                        echo 'Connection failed',  mysql_connect_error();
                        exit();
                    }




                    $insert="INSERT INTO volunteer_registration(name,nric,hp,email_id,address,gender,occupation,ins_orga,events,size,area,s1,captain_code)VALUES($name,$nric,$hp,$email,$address,$gender,$occupation,$ins_orga,$events,$size,$area,$s1,$captain_code)";
                    $query=  mysqli_query($mysqli, $insert)or die(mysqli_error($mysqli));



                }
                }
        ?>

3 个答案:

答案 0 :(得分:1)

第一期我看到:

if('$name'&&'$nric'&&'$hp'&&'$email'&&'$gender'&&'$occupation'&&'$events'&&'$size')

应该是

if (isset($name, $nric, $hp, $email, $gender, $occupation, $events, $size))

现在你正在这样做,你只是看到字符串文字'$name'是否真实 - 它总是如此,因为你没有检查变量$name

下一个问题是你永远不会插入数据库,只需要选择。

编辑:使用您的插入内容,

$insert="INSERT INTO volunteer_registration(...)VALUES($name,$nric, ... , $captain_code)

您需要在值周围加上引号:

$insert="INSERT INTO volunteer_registration(...)VALUES('$name','$nric', ... ,'$captain_code')

答案 1 :(得分:1)

其他人在代码片段

之后指出了问题
  $row=$result->fetch_fields();
  foreach($result as $val)
  {
           ///
  }

我认为应该是

         $row=$result->fetch_fields();
          foreach($row as $val)
          {
                      ///
          }

答案 2 :(得分:0)

我只是修复你的验证,而sql代码由你决定

也许你可以尝试让它更简单......

<?php
if (isset($_POST['submitted'])) {
$msg = "";
$name = $_POST['name'];
$pattern='/([[:alpha:]]|[[:space:]])/';
if (empty($name)) {
    $msg .= "<li>Please fill up your name!</li>";
}
if (!preg_match($pattern, $name)) {
    $msg .= "<li>Please key in a valid name!</li>";
}
if (empty($_POST['nric'])) {
    $msg .= "<li>Please key in your NRIC!</li>";
}
if (!is_numeric($_POST['nric'])) {
    $msg .= "<li>Please key in a valid NRIC number!</li>";
}
if (empty($_POST['hp'])) {
    $msg .= "<li>Please key in your H/P Number!</li>";
}
if (!is_numeric($_POST['nric']) && $_POST['nric'] < 10) {
    $msg .= "<li>Please key in a valid Mobile number!</li>";
}
if (empty($_POST['email'])) {
    $msg .= "<li>Please key in your email id!</li>";
}
if ((!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$_POST['email']))) {
    $msg .= "<li>Please key in a valid email id!</li>";
}
if (empty($_POST['gender'])) {
    $msg .= "<li>Kindly select your gender!</li>";
}
    if (empty($_POST['occupation'])) {
        $msg .= "<li>Kindly select your occupation!</li>";
    }else{
        $occupation=$_POST['occupation'];
        if(empty($_POST['ins_orga'])) {
            $msg .= "<li>Please name your institution or organization!</li>";
        }else{
        $ins_orga=$_POST['ins_orga'];
        }
    }
if (empty($_POST['events'])) {
    $msg .= "<li>You didn't select any events!</li>";
}
else{
    $nevents = count($events);
        # ...
}
if(empty($_POST['size'])) {
    $msg .= "<li>please select your size!</li>";
}
if ($msg=="") {
    $order_id = uniqid(rand(10,1000),false);
    $order_id = substr($order_id,rand(0,strlen($order_id) - 4),4);
    $code = hexdec($order_id);
    $msg .= "you have successfully registered! Your code is: ".$code.""; 

    # Your code SQL...
        # ......
            #......
}

}
?>
<?php echo $msg; ?>