mysql表更新没有结果

时间:2013-05-04 08:25:41

标签: php mysql sql wordpress

我制作了一个html表单,用于更新mySQL DB中我的表中的某些字段,因为成功更新后应该将我引导到成功页面,否则会给出错误信息。表示错误

我使用表单验证,但到目前为止我的表中的字段没有任何反应只会将我引导到空白页面

这是表单代码:

<html>
    <body>
    <form action="http://localhost/wordpress/orgupdate.php" method="post" name="myForm">
        Name <input id="name" type="text" name="name" />
        Telephone <input id="telephone" type="text" name="telephone" />
        Fax <input id="fax" type="text" name="fax" />
        Web address <input id="webaddress" type="text" name="webaddress" />
        State <input id="state" type="text" name="state" />
        Address <input id="address" type="text" name="address" />
        <input type="submit"  name= "submit" value="update" />
    </form>
    </body>
</html>


<script type="text/javascript">// <![CDATA[
    /* JS validation code here */

    function validateForm()
    {
        /* Validating name field */
        var x=document.forms["myForm"]["name"].value;
        if (x==null || x=="")
        {
            alert("Name must be filled out");
            return false;
        }
        /* Validating email field */
        var x=document.forms["myForm"]["telephone"].value;

        if (x==null || x=="")
        {
            alert("telephone must be filled out");
            return false;
        }
    }
// ]]>
</script>

这是我的php文件:

<?php 
//establish connection
$con = mysqli_connect("localhost","xx","xxxx","android_app"); 
//on connection failure, throw an error
if(!$con) {  
    die('Could not connect: '.mysql_error()); 
}

//get the form elements and store them in variables
$name=$_POST['name']; 
$telephone=$_POST['telephone']; 
$fax=$_POST['fax']; 
$webaddress=$_POST['webaddress']; 
$state=$_POST['state']; 
$address=$_POST['address'];

$query= update  islamic_organisation SET (Telephone ='$telephone', Fax ='$fax', WebAddress ='$webaddress', state ='$state', Address ='$address' WHERE  Name  ='$name');

//Redirects to the specified page
header("Location: http://localhost/wordpress/?page_id=857");
?>

任何想法?

2 个答案:

答案 0 :(得分:2)

$query= "update  islamic_organisation SET Telephone ='$telephone', Fax ='$fax', WebAddress ='$webaddress', state ='$state', Address ='$address' WHERE  Name  ='$name'";
$result=mysqli_query($con,$query) or die(mysqli_error());

编辑1:

printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($con));

答案 1 :(得分:2)

几点:

  1. 如果您获得空白页面,通常意味着某处出现错误但未显示,因为您已关闭调试。

    通过转到wp-config.php打开调试并将其设置为true:

    define('WP_DEBUG', true);
    
  2. 您的$query= update行非常奇怪。正如乔恩在提到的那样 评论,你应该在那里得到一个错误。
  3. 在WordPress中为表单命名字段时,请避免使用 像“name”,“city”这样的通用词,并使用更独特的词。
  4. 更新:(重要)

    我刚刚注意到您将原始用户输入放入SQL语句中。您应该针对 SQL注入保护您的查询。

    以下是answer关于mysqli_query的问题,其中介绍了如何执行此操作。