Php 这赢得了';不行?有什么建议吗?
我有一个脚本,我正在为音乐评分,没有错误,我正在“插入数据”,我知道我还没有逃逸数据,但是这个脚本中是否有任何问题可能阻止它将插入的数据放入数据库Php 这赢得了';不行?有什么建议吗?,php,mysql,Php,Mysql,我有一个脚本,我正在为音乐评分,没有错误,我正在“插入数据”,我知道我还没有逃逸数据,但是这个脚本中是否有任何问题可能阻止它将插入的数据放入数据库 <? include($_SERVER['DOCUMENT_ROOT'].'/assets/global/scripts/connect.php'); $songname = $_GET['songname']; $artist = $_GET['artist']; $ratenum = 1; $ch
<?
include($_SERVER['DOCUMENT_ROOT'].'/assets/global/scripts/connect.php');
$songname = $_GET['songname'];
$artist = $_GET['artist'];
$ratenum = 1;
$chkquery = "SELECT * FROM hotmuze_music WHERE songname='$songname'";
$plusOneQuery = "SELECT * FROM hotmuze_music WHERE songname='$songname'";
$updateQuery = "UPDATE hotmuze_music SET rating='$rating2' WHERE songname='$songname'";
$checkdata = mysql_query($chkquery);
$checkrows = mysql_num_rows($checkdata);
if($checkrows==0)
{
$insquery = "INSERT INTO hotmuze_music (id, songname, artist, sex, genre, rating, promoted) VALUES('', '$songname', '$artist', '', '$genre' '$ratenum')";
$insdata = mysql_query($insquery);
}
if($checkrows!=0)
{
$plusData = mysql_query($plusOneQuery);
}
if(mysql_num_rows($plusData)!=0)
{
$result = mysql_fetch_assoc($plusData);
$rating = $result['ratng'];
$rating2 = $rating+1;
mysql_query($updateQuery);
echo "Data Inserted";
}
?>
谢谢!:) 您遗漏了逗号和提升字段的值,请尝试: $insquery = "INSERT INTO hotmuze_music (id, songname, artist, sex, genre, rating, promoted) VALUES('', '$songname', '$artist', '', '$genre', '$ratenum', '$promoted')"; $insquery=“插入hotmuze_音乐(id、歌曲名、艺术家、性别、流派、评级、升级)值(“%$songname”、“%$艺术家”、“%$流派”、“%$ratenum”、“$升级”);
您可以在引用尚未定义的变量(
$rating2
)的脚本顶部定义$updateQuery
。尝试将最后几行更改为:
if(mysql_num_rows($plusData)!=0)
{
$result = mysql_fetch_assoc($plusData);
$rating = $result['rating'];
$rating2 = $rating+1;
mysql_query("UPDATE hotmuze_music SET rating='$rating2' WHERE songname='$songname'");
echo "Data Inserted";
}
您得到的
列计数与第1行的值计数不匹配的错误是由于insert语句中又缺少1个DB列造成的
(id,songname,artist,sex,genre,rating,promoted)
是7个字段,你只给6个值(“$songname”,“$artist”,“''',“$genre”“$ratenum”);
检查错误:mysql_foo()或die(mysql_error());
$rating=$result['ratng'];
可能应该是$rating=$result['rating']
插入时未发送“升级”列值。“$GREEN”之后也没有任何错误。在没有实际测试数据是否确实插入时,回显插入的数据是没有意义的。只是一个建议,但您可能希望查看MySQL insert…关于重复密钥更新语法。这将使这一操作更容易r你。也可以看到@Sudhir关于插入中缺少逗号的评论。谢谢:)虽然返回的错误是“列计数与第1行的值计数不匹配”,但有什么想法吗?:)谢谢:)尽管返回的错误是“列计数与第1行的值计数不匹配”,有什么想法吗?:)