【问题标题】:Select and then Insert Query (PHP with MYSQLI) Not working选择然后插入查询(带有 MYSQLI 的 PHP)不起作用
【发布时间】:2015-04-02 06:55:40
【问题描述】:

您好,我有一个名为“寄存器”的表,其中有一些记录让我们说 (10) 我想先计算这些记录,然后将其保存到另一个名为“not”的表中,即 Notification(Handler Name)

这是我正在使用的代码,但不幸的是它不起作用..

这是我的 config.php

<?php

$con = new mysqli('localhost','root','','admin');

if (mysqli_connect_errno())
 {
 echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
?>

这里是 abc.php

<?php 
include('config.php');
$sql2 = "INSERT INTO not VALUES((SELECT count(*) as count FROM register))";
$result2 = mysqli_query($con, $sql2);
if($result2->num_rows>0)
{
while($rw1=$result2->fetch_array())
{
$value1 =  $rw1['count'];
echo $value1;
}
}
?>

【问题讨论】:

  • NOT 是 SQL 中的保留字。我建议使用不同的表名。发布您的架构将有助于我们更好地了解您的问题。这是correct INSERT syntax。另外 - 我在您的代码中看不到任何 mysqli_connect()
  • 按照@phpPhil 的建议更改您的表名,并尝试此查询 INSERT INTO not SELECT count(*) as count FROM register
  • @phpPhil 也许他在 config.php 文件中建立了连接。

标签: php mysqli insert count


【解决方案1】:

not 是保留字。所以你应该这样使用:

$sql2 = "INSERT INTO `not` VALUES((SELECT count(*) as count FROM register))";

【讨论】:

    【解决方案2】:

    基本上我正在做一个类似于 Facebook 通知系统的项目

    我有一个注册表单,通过它注册用户,所有条目都将保存在名为“admin”的数据库中,表名为“register”

    清楚与否?

    假设我有 10 个用户,我想首先在顶部栏中将第 10 号显示为通知编号作为弹出工具提示

    只要按照我正在使用的这个例子 [http://demos.9lessons.info/notifications_css/index.php][1]

    之后我想执行这件事,当有人打开通知气泡时,那个 10 数字出去并在后端,我想将该 ROW COUNT 存储到另一个表中,并在 Jquery 单击函数之后,该表值转到零,当任何新用户注册时,它会增加计数器以匹配先前的值..

    好不好听??

    【讨论】:

      【解决方案3】:

      按照@phpPhil 的建议更改您的表名

      加上试试这个查询

      $sql2="INSERT INTO not SELECT count(*) as count FROM register";
      

      更新 在此文件中建立了联系。

      $con = new mysqli('localhost','root','','admin');
      $sql = "SELECT count(*) as count FROM register";
      

      此查询将仅返回一或零行,因此不要使用 while

       $result = $con->quer($sql) or die($con->error); 
          if($result->num_rows>0)
          {
               $rw=$result->fetch_array(MYSQLI_ASSOC); 
               $value =  $rw['count'];
      

      echo $value; 在这里检查你在这里得到了什么

      //之前你检查过 value 是否不为空。这是错误的,因为它永远不会清空它,它将是 0 或任何其他值

               if($value!=0) 
               {             
                 $jh ="update noti set noti='$value'";
                 $res=$con->query($jh) or die($con->error);
                }
                else
                {
                 $ab ="insert into noti(noti) values('$value')";
                 $res1=$con->query($ab) or die($con->error);
                }
          }
      

      【讨论】:

      • 您在上面发布的查询,它不会将值保存到“noti”表中
      猜你喜欢
      • 2018-09-01
      • 2020-02-25
      • 1970-01-01
      • 2016-03-19
      • 2017-10-20
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      相关资源
      最近更新 更多