Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP向MySQL添加数据_Php_Mysql_Insertion Sort - Fatal编程技术网

通过PHP向MySQL添加数据

通过PHP向MySQL添加数据,php,mysql,insertion-sort,Php,Mysql,Insertion Sort,我有一个以下类型的结构表。url数据似乎很好。间隔值(B1 B2 B3)设置为整数类型的1 DateToBook | B1 | B2 | B3 | ------------------------------------ 8March2013 | 1 | 1 | 1 | 我无法插入值。上述结构的间隔数为3 <?php $DB_hostname = "localhost"; $DB_Name = "root"; $

我有一个以下类型的结构表。url数据似乎很好。间隔值(B1 B2 B3)设置为整数类型的1

  DateToBook          | B1 | B2 | B3 | 
 ------------------------------------
  8March2013         | 1  |  1 |  1 |
我无法插入值。上述结构的间隔数为3

   <?php
   $DB_hostname = "localhost";
   $DB_Name = "root";
   $DB_pass = "pass123";

   if(isset($_GET["tabName"])){
       $tableName = $_GET["tabName"];
       $dB = $_GET["db"];
       $bayCount = $_GET["bayNo"];
       $date =  $_GET["d"];
       $b = '1';
    }

   $con = mysql_connect($DB_Hostname,$DB_Name,$DB_pass) or die(mysql_error());


   mysql_select_db($db, $con);

   $_bayColumn = array();
   for ($i = 1; $i <= $bayCount; $i++) {
      $_bayColumn[] = "B$i";
   }
   echo $_bayColumn[0];


   mysql_query("INSERT INTO $tableName (DateToBook) VALUES ($date)");


   for ($j =0; $j < $bayCount; $j++) {

   mysql_query("UPDATE $tableName SET $_bayColumn[$j] = '$b'  WHERE DateToBook = '$date'");


   }




  mysql_close($con);
  ?>

您的问题是
$b
只存在于下面的
if
语句中。如果
$b
始终为1,为什么不在查询中只写
1
,而不是
$b

或将其更改为以下内容:

$b = '1'; //Place it here
if(isset($_GET["tabName"])){
   $tableName = $_GET["tabName"];
   $dB = $_GET["db"];
   $bayCount = $_GET["bayNo"];
   $date =  $_GET["d"];
   $b = '1'; //You can get rid of this now
}

此外,我完全同意上面的评论,您应该使用MySQLI或PDO

您的问题是
$b
仅存在于下面的
if
语句中。如果
$b
始终为1,为什么不在查询中只写
1
,而不是
$b

或将其更改为以下内容:

$b = '1'; //Place it here
if(isset($_GET["tabName"])){
   $tableName = $_GET["tabName"];
   $dB = $_GET["db"];
   $bayCount = $_GET["bayNo"];
   $date =  $_GET["d"];
   $b = '1'; //You can get rid of this now
}

此外,我完全同意上面的评论,您应该使用MySQLI或PDO

您可以使用
die(“插入$tableName(DateToBook)值($date)”)
来检查您是否得到了正确的值。

您可以使用
die(“插入$tableName(DateToBook)值($date)”)
检查您是否获得了正确的值。

您正在使用并且应该使用。你也很容易受到这个问题的影响,因为一个现代的API会让你更容易从中受益。我认为你必须将这一行替换为` for($j=0;$j不能等于baycount,因为我正在循环到$\u bayColumn[]的索引中arrayYou正在使用并且应该使用。您还容易受到现代API会使您更容易使用的影响。我认为您必须为($j=0;$j不能等于baycount,因为我正在循环到$\u bayColumn[]arraybaycount的索引中。arraybaycount的类型为integer。“B1 INT NOT NULL默认值1”是否与此有关?是的,是真的!即使没有for循环,我也无法插入日期。DateToBook是主键,类型为Varchar(11)
mysql\u查询(“插入$tableName(DateToBook)值($date)”;
生成了什么查询?(
var\u dump(“插入$tableName(DateToBook)值($date)”);
)当我在Php MyAdmin sql查询页面上尝试时,查询似乎可以工作。是的,但在phpMyAdmin中,Php不会生成您的查询。请尝试将您的所有值放在“引号”中,表名放在选项卡
`key`
上方->实际上,在PDO或MySQLibaycount中重写它是整数类型。“B1 INT not NULL默认值1”是否与此有关?是的,是真的!即使没有for循环,我也无法插入日期。DateToBook是主键,类型为Varchar(11)
mysql\u查询(“插入$tableName(DateToBook)值($date)”;
生成了什么查询?(
var\u dump(“插入$tableName(DateToBook)值($date)”);
)当我在Php MyAdmin sql查询页面上尝试时,查询似乎起作用。是的,但在phpMyAdmin中,Php不会生成您的查询。请尝试将您的所有值放在“引号”中,并将表名放在选项卡上方的表名中