2016-11-23 4 views
-1

Вот код:PHP форма не обновление базы данных MySQL

HTML:

<div class="modal-body"> 
    <input type="text" name="tradelink" class="tradeurlinput" id="tradeurlinput"> 
    </div> 
    <div class="modal-footer"> 
    <button class="savechanges" id="savechanges" type="submit" name="SubmitTlink" value="update" >Save Changes</button> 
    </div> 

PHP:

<?php 
$con = mysqli_connect("localhost","root","") or die("Connection Failed"); 
$db_found = mysqli_select_db($con, 'tutorial') or die("connection failed"); 

if (isset($_POST['SubmitTlink'])) { 
    $tradelink = $_POST['tradelink']; 
    $result = mysqli_query($con, "UPDATE tlink SET tlink= '$tradelink' WHERE steamid = '".$steamprofile['steamid']."'"); 
    if (mysqli_query($result)) { 
     echo "updated"; 
     mysqli_close($con); 
    } else { 
     echo "fail";} 
     mysqli_close($con); 
    } 
} 
?> 

Я пытался исправить это сам, но я просто не могу заставить его работать, предложения?

+0

'UPDATE tlink SET tlink' Whaaat? Можете ли вы поделиться своей структурой таблиц, пожалуйста? Наряду с DML и DDL. Также покажите свой полный код. –

+0

где

тег? –

+0

@BipinKareparambil Будет в остальной части кода. –

ответ

0

вопрос здесь:

// Some more code. 
    if(mysqli_query($result)) { // You should check the truthiness of this. 
    echo "updated"; 
    mysqli_close($con);  // You don't need this here. 
    } 
    else{ 
    echo "fail"; 
    } 
    mysqli_close($con);   // This is optional, but fine. 
} 

$result является запрос на обновление, которое будет иметь только true или false вернулся. Таким образом, mysqli_query(true) не имеет смысла, плюс он вызывает ошибку, говоря, что он ожидает, что объект соединения MySQLi является первым параметром, а не логическим значением.

Так изменения кода, вы должны иметь ...

// Some more code. 
    if($result) { 
    echo "updated"; 
    } 
    else { 
    echo "fail"; 
    } 
    mysqli_close($con);   // This is optional, but fine. 
} 
+0

Благодарим за предложение, но оно не работает, оно не срабатывает «сбой» или «обновлено», начиная с –

+0

@ JoãoManitoLopes У вас есть ваши ошибки? –

+0

Нет, когда я нажимаю кнопку, ничего не происходит, и нет ошибок. –

0
No need of use mysqli_query twice.Try this code 


    <?php 
     $con=mysqli_connect("localhost","root","") or die("Connection Failed"); 
     $db_found = mysqli_select_db($con, 'tutorial') or die("connection failed"); 
     if(isset($_POST['SubmitTlink'])){ 
     $tradelink = $_POST['tradelink'];  
     $result = mysqli_query($con, "UPDATE tlink SET tlink= '$tradelink' WHERE steamid = '".$steamprofile['steamid']."'"); 
     if(($result)){ 
     echo "updated"; 
     mysqli_close($con); 
     } 
     else{ 
     echo "fail";} 
     mysqli_close($con); 
     } 

     ?> 
+0

Ну, Шану, это то же самое, что я написал ... ';)' –

0

Одна из вещей, которые я заметил, что вы не имеете форму с medthod и действий, там для вашего кода должен выглядеть

<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    <div class="modal-body"> 
     <input type="text" name="tradelink" class="tradeurlinput" id="tradeurlinput"> 
    </div> 
    <div class="modal-footer"> 
     <button class="savechanges" id="savechanges" type="submit" name="SubmitTlink" value="update" >Save Changes</button> 
    </div> 
</form> 

затем, когда кнопка нажата вам нужно проверить, если поле Tradelink установлено и не пусто, то вы можете начать обновление, если это правда, и попытаться использовать MySQLi подготовленных операторов во всех время, вам нужно для google, почему важно использовать подготовленные заявления.

NB: Всегда проверять, фильтровать и дезинфицировать, вводимых пользователем, обрабатывают каждый вход от пользователя, как если бы его от очень опасного хакера.

Ваш php-скрипт должен выглядеть примерно так.

<?php 

$con = mysqli_connect("localhost", "root", "") or die("Connection Failed"); 
$db_found = mysqli_select_db($con, 'tutorial') or die("connection failed"); 

if (isset($_POST['SubmitTlink'])) { 

     if (empty($_POST['tradelink'])) { 

       die("enter tradelink"); 
     } else { 

       $tradelink = $_POST['tradelink']; 

       $sql = $con->prepare("UPDATE tlink SET tlink =? where steamid = ?"); 
       $sql->bind_param('si', $tradelink, $steamprofile); 

       if ($sql->execute()) { 

         echo "update"; 
       } else { 

         echo "fail" . mysqli_error(); 
       } 

       $sql->close(); 
       $con->close(); 
     } 
} 
?> 

Надеется, что это помогает и решает проблему,

PS: Вы можете подключить и выбрать базу данных в одной строке.

$con = new mysqli("host", "user, "password, DB); 

Я открыт для предложений, связанных с интересами. Я чего-то пропускаю, спасибо.

Смежные вопросы