每当我尝试创建一个新表时,mysql就会死掉

时间:2016-01-14 17:00:51

标签: php mysql

我每次发布此方法时都会尝试创建新表,但出于某种原因,我无法弄清楚它为什么会死掉。

<?php

 $host = "127.0.0.1";
 $username = 'cotten3128';
 $pwd = 'pwd';
 $database = "student_cotten3128";
 $pin = $_REQUEST['pinSent'];
 $words = $_REQUEST['resultSent'];
 $tableName = $pin;
 $db = new mysqli($host, $username, $pwd, $database);
 if ($sql = $db->prepare("CREATE TABLE $pin (id INT(11) AUTO_INCREMENT);")) {
 $sql->execute();
 $sql->close();
 }else{
 echo $mysql->error;
 die('Could not create table');
}
 for($i=0;$i<count($words);$i++){
  if($sql = $db->prepare("INSERT INTO ".$pin.$words[$i].";")) {
 $sql->execute();
 $sql->close();
 }else{
  echo $mysql->error;
  die("Could not add data to table");
 }
}


mysqli_close();
?>

非常感谢任何帮助或见解。

1 个答案:

答案 0 :(得分:0)

我的帖子的目的是帮助您自己找到问题。由于您没有添加太多信息,我认为我的帖子对您​​有帮助。

根据您共享的代码,我猜您的意思是执行了一个被调用的die()函数。

错误的函数调用

Jay Blancherd提到mysql_close是错误的功能。您必须在创建mysqli_close实例时使用mysqli

除此之外,mysql_*已被弃用,不应再使用了。


调试步骤

不仅是这种情况,而且一般来说你应该问自己:

  • 是否有可用的错误消息? (前端输出,错误日志文件,......)

YES:

  • 关于该消息的内容是什么?
  • 您可以搜索错误吗?例如。通过搜索引擎或相应的文档?
  • 在您使用的软件的软件开发人员中查找错误跟踪器(如果可用),如果尚未报告,则报告问题。

否:(如果没有可用的错误消息,或者您无法搜索它,因为它是自定义错误消息)

  • 在您使用的软件文件中搜索错误消息并启动核心调试。

仍然没有解决方案?:

  • 在stackoverflow.com上询问,例如并告诉您的问题以及您为查找和修复错误而执行的步骤。只发布必要的代码并使用正确的格式。

根据您的情况进行调试:

为了缩小范围。哪个die()被执行?根据回显,查询要在实际执行之前执行。然后将SQL查询复制到SQL编辑器并查看它的语法。之后你可能已经知道了这个问题。