1

我目前正在编写代码以简单地在数据库表中一次更新一行。然而,只有奇数行被更新,而偶数行没有被更新。

这是我的PHP:

<?php
require_once ("connect.php");
$id = $_GET['id'];
$title = $_POST['title'];
$description = $_POST['description'];

$query = "UPDATE tbl_shows SET shows_title='$title', shows_description='$description' WHERE shows_id='$id'";
$result = mysql_query($query);

 if ($result) {
    header ("Location: shows.php?=success");
    exit ();
} else {
    echo "<p>Still doesn't work</p>";
        exit ();
}
?>

我已经打印了我的 $id、$title 和 $description 变量,它们都按应有的方式显示。

如何更改我的代码,以便更新偶数和奇数行。

编辑:

回显 $id、$title、$description 和 $query 对于奇数行和偶数行显示相同。

什么 mysql_error() 输出:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在附近使用的正确语法(该行中的部分数据出现在此处并消除错误)第 1 行的 WHE'

查询:

UPDATE tbl_shows SET shows_title='Title is here', shows_description='Description is here' WHERE shows_id='2'
4

2 回答 2

1

您的代码具有简单的 sql 注入漏洞,这可能导致您看到的无意错误。例如,如果您的 $description 如下所示:

Best movie ever!!! You're going to love it!

...那么您的连接查询将如下所示:

UPDATE tbl_shows SET shows_title='Title is here', shows_description='Best movie ever!!! You're going to love it!' WHERE shows_id='2'

这样做的问题是,撇号 inyou're将导致值show_descriptionto terminate,并且查询的其余部分对 SQL 不再有意义。

至少,使用 mysql_real_escape_string()来清理你添加到查询中的变量,更好的是,使用 php 的 PDO 库

于 2012-05-17T16:35:32.910 回答
0

目前尚不清楚是什么原因导致偶数项无法从您发布的内容中更新。我建议您使用mysql_error函数在 $result 为 false 时显示您收到的确切错误消息。根据 PHP 文档,mysql_result 仅在错误时返回 false,因此这是一个很好的迹象,表明可能发生了一些奇怪的事情。

于 2012-05-17T15:51:35.093 回答