mySQL insert只是不起作用,但会与其他表一起使用

时间:2013-04-05 00:57:42

标签: php mysql database web-applications

我有一个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。提前谢谢大家!

3 个答案:

答案 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。 “')”);