MySQL / PHP更新查询未执行

时间:2012-05-03 14:38:58

标签: php mysql database

我测试了update语句中的变量并检查了是否建立了数据库连接,但是查询没有运行,请您在我的代码中告诉我错误。

for($i=0; $i <= $numcourses; $i++){
    echo '<div class="new'.$i.'" id="new'.$i.'"><label>'.$course_names[$i].'</label>
    <input name="edit'.$i.'" type="submit" value="Edit" /><input name="delete'.$i.'" type="submit" value="Delete" /><br /></div>';
    $name="edit".$i;    
    if (isset($_POST[$name])){
        echo '<input name="text" type="text" value="'.$course_names[$i].'" /><input name="save'.$i.'" type="submit" value="Save"/>';
    }   
    $name2="save".$i;
    if (isset($_POST[$name2])){
        include "includes/open.php";
            $newname=($_POST['text']);
            $int=$i+1;
            $query = "UPDATE course SET cname = '".$newname."' WHERE cid = '".$int."'";
            mysql_query($query) or die(mysql_error());
            include "includes/close.php";
    }
}

更新:Thanx Marc B,添加or die(mysql_error());向我展示了我的代码中的错误,一切正常,我又回到正轨。

5 个答案:

答案 0 :(得分:3)

您的查询调用没有错误处理:

mysql_query($query) or die(mysql_error());
                   ^^^^^^^^^^^^^^^^^^^^^^

会告诉您查询执行是否有任何问题。在元级别上,您对SQL injection attacks持开放态度,因此在进一步使用代码之前,最好先阅读并解决问题。

答案 1 :(得分:2)

$query = "UPDATE course SET cname = '".$newname."' WHERE cid = '".$int."'";

是cID整数?在update语句中,我看起来像一个字符串,尝试回显每个查询并通过直接在db中执行它来检查有效性

答案 2 :(得分:1)

你在哪里连接到数据库??

使用mysql_connect(string hostname, string username, string password');连接到数据库,然后在使用mysql_select_db选择数据库后执行查询。

答案 3 :(得分:1)

首先,您应该删除;

上的额外$name="edit".$i;;

然后,你如何发布价值观?我在您的代码中看不到<form>属性,因此无法发布。

此外,一切都在for循环中。永远不会设置$newname=($_POST['text']);

答案 4 :(得分:1)

也许不是这样:

if (isset($_POST[$name2]))

试试这个:

if ($name2!="")