我有一个mySQL问题让我难以忍受几个小时!
背景信息:我正在创建一个网络应用程序,用于在触摸设备上教孩子不同的音乐符号
问题:运行此单个脚本后,尽管最后一个echo参数有效,但不会创建任何行。
Wierd:这是在我工作的其他脚本之后建模的。
编辑:在我们发现问题后,我会用准备好的陈述重新提供代码。
以下是代码:
<?php
$database_connect = mysql_connect('localhost','ragstudi','*****');
if (!$database_connect) {die ('Not connected to SQL' . mysql_error());};
mysql_select_db('ragstudi_musicGameScores') or die ('db doesnt exist');
$userName = "Jimmy";//$_POST["username"];
$gameLevel = 1;//$_POST["level"];
$gameScore = 2300;//$_POST["score"];
$userGroup = "RagWway";
$highScores = mysql_query("INSERT INTO highScores (name, groupBy, level, score) values('".$userName."','".$userGroup."','".$gameLevel."','".$gameScore."')");
if (!$highScores){
die(
mysql_error()
)
};
数据库_musicGameScores设置如下 Id,主要,自动增量,整数 name,varchar groupBy,varchar 等级,整数 得分,整数
密码为Star'ed。提前谢谢大家!
答案 0 :(得分:4)
GROUP
是保留关键字。你必须正确地逃避它,这样才不会产生错误。
INSERT INTO highScores (id, user, `group`, level, score) VALUES(...)
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号。
答案 1 :(得分:0)
尝试在每一栏中添加``,也许那里有一个保留的关键字。
mysql_query("INSERT INTO highScores (`id`, `user`, `group`, `level`, `score`) values('','".$userName."','".$userGroup."','".$gameLevel."','".$gameScore."')");
答案 2 :(得分:0)
应该是这样的。干杯! :d
$ highScores = mysql_query(“INSERT INTO highScores(id,user,group
,level,score)values('','”。$ userName。“','”。$ userGroup。“', ' “$ gameLevel”','”。$ gameScore。 “')”);