6

我有这个代码,所以通过 PHP 将值插入到 MySQL 中的表中。我已经尝试了所有可能的插入语法,它不插入数据......这是我使用的代码。

$param = "xyzxyz";
$param1 = "sdfdfg";
$sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('".$param."','".$param1."')";
$result = $mysql->query($sql);
if($result)
   echo "successful";
else
   echo mysql->error;
if(mysql->errno==0)
   echo "successful"
else
   echo mysql->error;

我什至尝试了以下 sql 语法

"INSERT INTO trail (User_Name, Quiz_ID) VALUES ('$param1','$param1')";

"INSERT INTO `trail` (`User_Name`, `Quiz_ID`) VALUES ('$param1','$param1')";

我尝试了其他几个,它们都没有在表中插入任何东西。这是 MySQL 中的表;

trail

User_Name varchar(35)
Quiz_ID varchar(35)

它不插入任何东西,也不显示任何错误。而且我有正确的数据库连接,因为我可以从表中选择。它只是棘手的插入。

任何帮助将非常感激。

谢谢

4

7 回答 7

4

如果有人遇到类似问题,请注意:

我有一个类似的问题 --- 插入查询在 PHPMyAdmin 上工作,但在 PHP 上不工作,也没有发出任何错误(结果一直都是真的)。

原因是我正在开始交易但忘记提交它......

$mysqli->autocommit(FALSE);

$mysqli->query( "START TRANSACTION" );

永远不要忘记这一点:

$mysqli->commit();

我知道这是一个愚蠢的错误,但我太专注于查询的谜团,以至于忘记了上面几行的事务语句。

于 2014-02-10T00:56:05.220 回答
3

首先检查 mysqli::$errno。

if(mysql->errno==0)
   echo "successful"
else
   echo mysql->error;
于 2013-01-08T23:58:49.437 回答
1

我所做的是,如果您没有安装调试器,只需通过电子邮件将查询发送给您。通过这种方式,您可以看到最终查询是什么,如果您有权访问 phpMyAdmin 之类的内容,请尝试手动运行查询并查看会发生什么。另一件事,请确保您正在正确搜索插入的记录,如果您因为记录数而使用搜索查询,请确保 WHERE 条件是正确的,这已经烧了我几次。

编辑 名称周围可能缺少符号。我必须运行我所有的 MySQL 查询,比如

`nameOfThing`

而不仅仅是 nameOfThing

$param = "xyzxyz";
$param1 = "sdfdfg";
$sql = "INSERT INTO `trail` (`User_Name`, `Quiz_ID`) VALUES ('".$param."','".$param1."')";
$result = $mysql->query($sql);
if($result)
   echo "successful";
else
   echo mysql->error;
if(mysql->errno==0)
   echo "successful"
else
   echo mysql->error;
于 2013-01-09T00:49:51.483 回答
0

仅供参考,您插入 $param1 两次。

你也没有';' 在回显“成功”之后。

我建议您清理代码示例,然后再试一次,然后告诉我们。

需要清理的东西

  1. $sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('$param','$param1')"; 您不需要在字符串连接中连接变量,您可以进行插值。但是,您实际上应该将 PDO 与准备好的语句一起使用,以避免 SQL 注入的可能性。
  2. 添加缺少的;
  3. 进行第一次检查if(mysql->errno==0)(除非您要为这些东西切换到 PDO)。
  4. 固定mysql->errormysql->error()
  5. 也许评论中还有其他一些东西。
于 2013-01-09T00:01:36.377 回答
0

好吧,如果以下代码没有产生错误并显示 1 个受影响的行,则很可能您正在错误的数据库中查找结果。

ini_set('display_errors', 1);
error_reporting(E_ALL);

$sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('testing','1')";
$mysql->query($sql);
var_dump($mysql->error,$mysql->affected_rows);
于 2013-01-09T03:55:08.543 回答
0

我的表是 InnoDB 表,当我将表更改为 MyISAM 时,插入工作正常。好吧,我以前从未遇到过这个问题。好吧,这暂时奏效了。

如果我想使用 InnoDB 引擎进行交易?我怎样才能让 php 能够在 InnoDB 表中插入值?有人有什么建议吗?我正在使用 WAMP 服务器,MySQL 是 5.5.24 版。我确实更改了 my.ini 中的 InnoDB conf,但这似乎也不起作用?

于 2013-01-09T09:38:12.297 回答
-1

试试这个

$param = "xyzxyz"; 
$param1 = "sdfdfg"; 
$sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('".$param."','".$param1."')"; $result = $mysql_query($sql); if($result){ echo "successful";} else { echo " not successful;}

于 2013-07-29T05:52:34.057 回答