2013-08-02 65 views
0

我一直在我的头上撞墙约2个小时了,我无法弄清楚我做错了什么。我只是试图用新信息更新MySQL数据库。但是当我点击“更新信息”时,什么都没有发生。PHP更新命令不起作用

<div id="tabs-1"> 
<?php 

//update main informaion 

if(isset($_POST["toolnameupdate"])){ 

    $companyname1 = ""; 

    $toolname1 = ""; 

include_once("../php_includes/db_connect.php"); 

$companyname1 = $_POST['clientname']; 

$toolname1 = $_POST['webtoolname']; 

$sql = "UPDATE siteinformation SET clientname = $companyname1, srcname = $toolname1"; 

$query = mysqli_query($db_connect, $sql); 

error_reporting(E_ALL); 

header('Location: user.php'); 
} 
?>  
<form method="post" action=""> 
    <fieldset> 
<legend><strong>Main Title Information</strong></legend> 
<div id="prompt">Client Company Name:</div><div id="answer"><input type="text" name="clientname" id="clientname" value="<? echo $companyname; ?>"/></div> 
<div id="prompt">Web Tool Name:</div><div id="answer"><input type="text" name="webtoolname" id="webtoolname" value="<? echo $toolname; ?>"/></div> 
<div id="prompt"><input type="submit" id="toolnameupdate" name="toolnameupdate" value="Update Information" /></div><div id="answer">&nbsp;</div> 
<div id="prompt">&nbsp;</div><div id="answer">&nbsp;</div> 
</fieldset> 
</form> 
    </div> 

任何人都可以看到它缺少的信息?

谢谢

+2

您错过了

标记.... –

+2

首先..净化您的变量。其次..我不认为在$ _POST superglobal中使用括号是合法的举动。 –

+0

您的更新查询中没有WHERE条件,它将更新***所有***行。你确定你不是指'INSERT'吗?还有,这个代码有太多的错误,应该会引发一些错误。 'error_reporting(E_ALL);'会确保你真的*看到*他们。 – Sammitch

回答

5

我不确定这是否是完整的代码。但是表单域应该包含在<form>标记中。

<form method="post" action=""> 
<fieldset> 
<legend><strong>Main Title Information</strong></legend> 
<div id="prompt">Client Company Name:</div><div id="answer"><input type="text" name="clientname" id="clientname" value="<? echo $companyname; ?>"/></div> 
<div id="prompt">Web Tool Name:</div><div id="answer"><input type="text" name="webtoolname" id="webtoolname" value="<? echo $toolname; ?>"/></div> 
<div id="prompt"><input type="submit" id="toolnameupdate" name="toolnameupdate" value="Update Information" /></div><div id="answer">&nbsp;</div> 
<div id="prompt">&nbsp;</div><div id="answer">&nbsp;</div> 
</fieldset> 
</form> 

也正确的语法是$ _POST ['..'],而不是括号。

并且还将error_reporting(E_ALL);移动到文件的顶部,否则它不会太有用。

+0

感谢您的帮助,窗体在那里,但我保存删除它。我也修改了$ _POST语句。表单现在提交,但没有添加更改。修改后的代码是低于 – PHaeLiX

+0

那很好听。现在你需要做一些基本的数据库调试。比如在使用phpmyadmin运行时检查你的查询是否成功。 – Aris

4

$_POST('clientname')应该是$_POST['clientname']。和其他帖子一样。还请阅读Aris关于表单标签的回答。

修改代码后,您删除了变量周围的引号,它们需要保留。

$sql = "UPDATE siteinformation SET clientname = '$companyname1', srcname = '$toolname1'";