我在更新和插入数据到我的数据库时遇到问题。我已经调试了程序的大部分,所以我确定问题出在更新的代码行和插入数据的代码行。我非常困惑,因为它们是使用相同代码的其他函数,并且我在每个函数中使用的所有变量都是在函数中本地声明的,所以我知道它们不会冲突。顶部的代码表示打开与数据库和php的通信线路的所有数据库代码。这段代码可以工作,我已经在其他程序中测试过了。我仍然可以使用SELECT代码从数据库中提取数据,并且我已经反复检查名称是否与表匹配。这段代码是一些ajax代码的一部分,所以它会实时更新,但我在javascript中使用的post将数据很好地传输到了php文件中。所以我不知道我做错了什么,或者只是服务器出了点问题。如果任何人有任何想法,请让我知道。此外,此代码的目的是使它,使用户可以喜欢,喜爱,并给出5星的评级,他们正在我的网站上查看的内容。
代码如下:
<?php include "base.php";?>
</head>
<?php
$rateMe = mysql_query("SELECT * FROM rating WHERE Username = '".$_SESSION['Username']."' AND Title = '".$_POST['myTitle']."'");
if(mysql_num_rows($rateMe) == 0)
{
$registerquery = mysql_query("INSERT INTO rating (Username, Author, Star, Like, Favorite, Title) VALUES('".$_SESSION['Username']."','".$_POST['myAuthor']."','".$_POST['myrating']."','".$_POST['myLike']."', '".$_POST['myFavorite']."', '".$_POST['myTitle']."')");
}else
{
$makeUpdate = mysql_query("UPDATE rating SET Star = '".$_POST['myrating']."' WHERE Username = '".$_SESSION['Username']."' AND Title = '".$_POST['myTitle']."'");
}
?>这就是我要插入数据的表
表:评级
用户名varchar(255)
作者varchar(255)
星形浮点
像varchar(255)
最喜欢的varchar(255)
Title varchar(255)
发布于 2012-07-31 06:43:12
下面是打印insert查询时可能的样子
INSERT INTO rating (Username, Author, Star, Like, Favorite, Title) VALUES('John','Jim','xx','xx', 'xx', 'xx')insert语句中的like关键字可能会抛出如下错误
您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便使用接近‘like’的值(‘John’
检查您的更新是否有效
发布于 2012-07-31 06:51:22
正如Markus所暗示的那样,您的代码极易受到SQL注入攻击。此外,PHP手册强烈建议使用mysqli扩展,而不是mysql扩展。
我建议你花点时间通读一下this article on PDO,准备好的语句,以及在模型中插入/更新数据的正确方法。
https://stackoverflow.com/questions/11730578
复制相似问题