【问题标题】:mySQL insert just won't work, but will with other table [duplicate]mySQL插入不起作用,但会与其他表一起使用[重复]
【发布时间】:2013-04-05 00:57:42
【问题描述】:

我有一个 mySQL 问题困扰了我好几个小时!

背景:我正在创建一个网络应用程序来教孩子们在触摸设备上使用不同的音乐符号

问题:运行这个单独的脚本后,虽然最后一个 echo 参数有效,但没有创建任何行。

奇怪:这是根据我工作的其他脚本建模的。

编辑:找到问题后,我将使用准备好的语句重新提供代码。

代码如下:

<?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,主要,自动增量,整数 名称,varchar groupBy,varchar 级别,整数 分数,整数

密码已加注星标。提前谢谢大家!

【问题讨论】:

标签: php mysql database web-applications


【解决方案1】:

GROUP 是保留关键字。您必须正确地对其进行转义,以免产生错误。

INSERT INTO highScores (id, user, `group`, level, score) VALUES(...)

作为旁注,如果变量的值(s)来自外部,则查询很容易受到SQL Injection 的攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

【讨论】:

  • 它不会产生错误,因为 OP 没有使用错误处理程序。
  • @FreshPrinceOfSO 服务器怎么样?当查询出现语法错误时是否允许插入查询?
  • 我们不知道error_reporting是否启用。
  • 竖起大拇指.. 应该被接受为答案。!
  • 我不知道 mysql_ 现在已弃用。我将研究mysqli的实现。然而逃跑并没有奏效。感谢您花时间帮我解决这个问题。
【解决方案2】:

尝试在每一列中添加``,也许那里有一个保留关键字。

mysql_query("INSERT INTO highScores (`id`, `user`, `group`, `level`, `score`) values('','".$userName."','".$userGroup."','".$gameLevel."','".$gameScore."')");

【讨论】:

  • 这个答案没有添加任何新内容;此外,您不需要在每一列周围加上反引号。
  • @FreshPrinceOfSO 在发布此内容时确实看到了 J W 的回答。
【解决方案3】:

应该是这样的。干杯! :D

$highScores = mysql_query("INSERT INTO highScores (id, user, group, level, score) values('','".$userName."','".$userGroup."','" .$gameLevel."','".$gameScore."')");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多