Как проверить успешность запроса на обновление MySQL или нет? - PullRequest
0 голосов
/ 28 апреля 2018
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 голосов
/ 28 апреля 2018
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
}

Вот, пожалуйста, это должно сработать. Я заметил, что вы говорите «требуют 0» в вашем операторе if else, это должно быть возвращением. Кроме того, я не уверен в вашей проблеме, но есть две возможности, о которых я могу подумать.

  1. Ваша переменная $ conn недопустима. Убедитесь, что у него правильные учетные данные, смотрите строку $ conn-> connect_error, она есть в написанном мною коде, но также здесь: http://php.net/manual/en/mysqli.connect-error.php.
  2. Возможно, запрос неверный. Лично я форматирую все с капиталом и т. Д. как это делает мой текстовый редактор, когда я делаю это, мне легко понять, что к чему. Также не было никаких кавычек, окружающих переменные в вашем операторе SQL, это хорошо, если это целое число, но если вы случайно передаете строку, это не удастся.

Также убедитесь, что вы выбрали правильную таблицу ect. в вашем SQL.

0 голосов
/ 28 апреля 2018

Сначала создайте объект выписки, используя prepare.

$stmt = $conn->prepare($sql);
$worked = $stmt->execute();
if ($worked == TRUE) {
    //I did stuff
} else {
    // nope
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...