代码之家  ›  专栏  ›  技术社区  ›  user225269

使用PHP在MySQL中存储数组值时遇到问题

  •  0
  • user225269  · 技术社区  · 14 年前

    我正试图把一根弦分解成一个数组。要分解为名字、中间名和姓氏的全名。

      <?php
    
        include('conn.php');
    
        $un=$_POST['uname'];
        $pw=$_POST['pw'];
        $fulnem=$_POST['fullnem'];
        $temp=explode('/',$fulnem);
    
        $email=$_POST['email'];
    
        $method="creates";
    
    
    
    
    
        $sql="call compactproc('$un', '$pw', '$temp[0]', '$temp[1]', '$temp[2]', '$email', '$method')";
        $result=mysql_query($sql);
        if(!$result){
        echo "error!";
    
        }
    
    
    
        ?>
    

    程序主体如下:

    BEGIN
    
    IF actions="creates" THEN
    INSERT INTO admin_table(Uneym, Pwerd, Firstname, Middlename, Lastname, Email) VALUES(usrname, psword, frstname, midname, lstname, imail);
    END IF;
    END
    

    只有名字存储在数据库中。为什么会这样?midname和lastname不会被存储,我会在SQL查询行中得到未定义的偏移量错误。 你能告诉我这里有什么问题吗?

    3 回复  |  直到 6 年前
        1
  •  0
  •   nik    14 年前

    我希望您不要在call compactproc的参数中使用单引号(“)。

        2
  •  0
  •   shamittomar    14 年前

    您可能需要用空格来进行分解,而不是用空格来进行分解。

    $temp=explode('',$fulnem);
    < /代码> 
    需要用空间爆炸而不是/:

     $temp=explode(' ',$fulnem);
    
        3
  •  0
  •   James Leveille    6 年前

    尝试一点错误检查

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    } 
    

    希望有帮助,我也遇到了同样的问题,添加这个小片段解决了我的问题。直接从W3学校取的。