如何检查mysql更新查询是否成功?

时间:2018-04-28 08:34:48

标签: php mysql pdo

function insertNewBidPrice($code, $newBidPrice)
{
  global $conn;
  $sql = "update auctionitem set highestbid=$newBidPrice where code=$code";
  //echo $sql;
  if($conn->query($sql))
  {
    return 1;
  }
  else
  {
    require 0;
  }
}

我有这个php功能,虽然更新查询成功更新了表格,但仍然会产生0。

我使用PDO。

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

2 个答案:

答案 0 :(得分:1)

首先使用prepare。

创建一个语句对象
$stmt = $conn->prepare($sql);
$worked = $stmt->execute();
if ($worked == TRUE) {
    //I did stuff
} else {
    // nope
}

答案 1 :(得分:0)

function insertNewBidPrice($code, $newBidPrice) {
    global $conn;
    // write your query
    $sql = "UPDATE auctionitem SET highestbid='$newBidPrice' WHERE code='$code'";

    // run the query
    $result = $conn->query($sql);

    // check the result of the query
    if ($result == true) {
        // it was a success
        return 1;
    } else {
        return 0;
    }
}

global $conn;
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "my_db";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {
    // it worked
}

在这里你应该这样做。我注意到你在if else语句中说“require 0”需要返回。除此之外,我不确定你的问题,但我有两种可能的想法。

  1. 您的$ conn变量无效。检查它是否有正确的凭据,请参阅$ conn-> connect_error行,它在我写的代码中,但也在这里:http://php.net/manual/en/mysqli.connect-error.php
  2. 查询可能不正确。我个人用大写字母等格式化所有内容。当我这样做时,我的文本编辑器会对它进行着色,我很容易看到它是什么。此外,在SQL语句中没有关于变量的引号,如果它是一个整数,这很好,但是如果你不小心传递一个字符串,它将会失败。
  3. 同时检查您是否选择了正确的表格等。在你的SQL中。