首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的查询只更新奇数行?

为什么我的查询只更新奇数行?
EN

Stack Overflow用户
提问于 2012-05-17 15:33:47
回答 2查看 354关注 0票数 1

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

以下是我的PHP:

代码语言:javascript
复制
<?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行使用正确的语法(行中的部分数据出现在这里,并切断错误)。

查询:

代码语言:javascript
复制
UPDATE tbl_shows SET shows_title='Title is here', shows_description='Description is here' WHERE shows_id='2'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-17 16:35:32

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

代码语言:javascript
复制
Best movie ever!!! You're going to love it!

连接查询的...then如下所示:

代码语言:javascript
复制
UPDATE tbl_shows SET shows_title='Title is here', shows_description='Best movie ever!!! You're going to love it!' WHERE shows_id='2'

这方面的问题在于,you're 中的撇号将导致 show_description 终止的值,而查询的其余部分对SQL不再有意义。

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

票数 1
EN

Stack Overflow用户

发布于 2012-05-17 15:51:35

目前还不清楚是什么导致偶数项目没有从您发布的内容中更新。我建议您使用错误函数来显示当$result为false时所得到的确切错误消息。根据PHP,mysql_result只在出错时返回false,因此这是一个很好的迹象,表明可能出现了一些奇怪的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10638832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档