我目前正在编写代码,只需在数据库表中一次更新一个行。然而,只有奇数行正在被更新,而偶数行没有被更新。
以下是我的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行使用正确的语法(行中的部分数据出现在这里,并切断错误)。
查询:
UPDATE tbl_shows SET shows_title='Title is here', shows_description='Description is here' WHERE shows_id='2'发布于 2012-05-17 16:35:32
您的代码具有简单的sql注入漏洞,这可能会导致您所看到的意外错误。例如,如果您的$description如下所示:
Best movie ever!!! You're going to love it!连接查询的...then如下所示:
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库
发布于 2012-05-17 15:51:35
目前还不清楚是什么导致偶数项目没有从您发布的内容中更新。我建议您使用错误函数来显示当$result为false时所得到的确切错误消息。根据PHP,mysql_result只在出错时返回false,因此这是一个很好的迹象,表明可能出现了一些奇怪的情况。
https://stackoverflow.com/questions/10638832
复制相似问题