【问题标题】:Select, Insert and Update MySQL table PHP script not working选择、插入和更新 MySQL 表 PHP 脚本不起作用
【发布时间】:2015-08-17 13:46:57
【问题描述】:

我写了以下代码:

<?php
    $servername = "domain";
    $insert = 12345678;
    $username = "user";
    $password = "password";
    $dbname = "database";

// Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT quantity FROM Eshop WHERE id = $insert";
    $result = $conn->query($sql);
    echo $result;
    if ($result > 0) {
        $result = $result + 1;
        $sql2 = "UPDATE Eshop SET quantity = $result WHERE id = $insert";
        if ($conn->query($sql2) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql2 . "<br>" . $conn->error;
        } 
    } else {
        $sql3 = "INSERT INTO Eshop (id, quantity) VALUES ($insert, 1)";
        if ($conn->query($sql3) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql3 . "<br>" . $conn->error;
        }
    }
?>

我想要这个脚本做的是选择quantity,其中id$insert,然后如果quantity &gt; 0,将1 添加到quantity 并更新quantity,如果没有插入idquantity = 1 到表中。该表只有两个字段id(VARCHAR(32))quantity(DECIMAL(8,1))。为了帮助尽可能多的人,我尝试将其做得更笼统。请你帮助我好吗?提前致谢。注意:当我在浏览器中运行脚本时(在使用正确的用户名、域等将其上传到服务器之后)什么都没有显示,我什至在控制台中都没有收到错误。

【问题讨论】:

  • 用引号将您的 php 变量包含在查询中,例如:“SELECT quantity FROM Eshop WHERE id = '$insert'”;
  • 感谢您的帮助,但很遗憾没有成功。

标签: php mysql select insert sql-update


【解决方案1】:
    <?php
    $servername = "domain";
    $insert = 12345678;
    $username = "user";
    $password = "password";
    $dbname = "database";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT quantity FROM Eshop WHERE id = $insert";
    $result = $conn->query($sql);

    //check if particular record exists or not
    $count=mysql_num_rows($result);

   if($count>0) // if records exists for the particular id
   {
    while($row = mysqli_fetch_array($result)) {
        if ($row['quantity'] > 0) {
            $new_quantity = $row['quantity'] + 1;
            $update = "UPDATE Eshop SET quantity = '$new_quantity' WHERE id = '$insert'";
            if ($conn->query($update ) == TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $update . "<br>" . $conn->error;
            } 
        } else {
            $insert = "INSERT INTO Eshop (id, quantity) VALUES ('$insert', 1)";
            if ($conn->query($insert ) === TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $insert . "<br>" . $conn->error;
            }
        } // else qty is <=0

    } //end while
}
else {
   echo "Records do not exists for that particular id";
 }
?>

【讨论】:

    【解决方案2】:

    您需要提取查询结果并遍历每一行:

    <?php
        $servername = "domain";
        $insert = 12345678;
        $username = "user";
        $password = "password";
        $dbname = "database";
    
        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
    
        $sql = "SELECT quantity FROM Eshop WHERE id = $insert";
        $result = $conn->query($sql);
    
        while($row = mysqli_fetch_array($result)) {
            if ($row['quantity'] > 0) {
                $new_quantity = $row['quantity'] + 1;
                $sql2 = "UPDATE Eshop SET quantity = '$new_quantity' WHERE id = '$insert'";
                if ($conn->query($sql2) == TRUE) {
                    echo "New record created successfully";
                } else {
                    echo "Error: " . $sql2 . "<br>" . $conn->error;
                } 
            } else {
                $sql3 = "INSERT INTO Eshop (id, quantity) VALUES ('$insert', 1)";
                if ($conn->query($sql3) == TRUE) {
                    echo "New record created successfully";
                } else {
                    echo "Error: " . $sql3 . "<br>" . $conn->error;
                }
            }
    
        }
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 2019-03-21
      • 2018-02-25
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多