簡體   English   中英

MySQL查詢在PHP中默默失敗

[英]MySQL query fails silently in php

這是我為網站編寫的PHP代碼。 當我執行此操作時,查詢不會執行,也不會顯示任何錯誤。 我還檢查了要插入的值的數據類型。 數據庫用戶名和密碼以及所有憑據均正確。 可能是什么問題呢?

   <?php 
    $password ='abcdef';



      $host="localhost"; // Host name 
      $username="futureti_dsatya"; // Mysql username 
      $password="D2e3e4v1i"; // Mysql password 
      $db_name="futureti_db"; // Database name 
      $tbl_name="users"; // Table name 

     // Connect to server and select databse.
     $con = mysqli_connect($host, $username, $password,$db_name); 
     if(!$con)
     {
      die('Could not connect: '. mysql_error());
     }

    else
    {
     $res = mysqli_query($con,"insert into users values(55555623,'saran1','satya_saran',$password)");


    if($res){
       print("i am ok");
    }
    else{
    print("bad");
    }
    }

    ?>

您沒有得到任何錯誤,因為您正在使用mysql。 不是mysqli。

您的代碼混亂了,只包裝了密碼。 我想連接沒有連接。

替換為:

    die('Could not connect: '. mysql_error());

    die('Could not connect: '. mysqli_error());  //to see the error

如下所示將$pass括在引號中(55555623,'saran1','satya_saran','$pass') ,並帶有有關“ $password ”的說明,並更改mysql_error()); mysqli_error()); 這兩個函數不能混合使用,這就是為什么您沒有得到正確的錯誤消息來顯示的原因。

如前所述,您使用$password兩次; 將其中一個變量更改為其他變量。

您當前正在做的是覆蓋$password變量。

我假設您想在數據庫中輸入abcdef 如果是這樣,請改為執行以下操作:

<?php 
   $pass ='abcdef';
   $host = "localhost"; // Host name 
   $username = "futureti_dsatya"; // Mysql username 
   $password = "D2e3e4v1i"; // Mysql password 
   $db_name = "futureti_db"; // Database name 
   $tbl_name = "users"; // Table name 

   // Connect to server and select databse.
   $con = mysqli_connect($host, $username, $password,$db_name); 

  if ( !$con ) {
       die('Could not connect: '. mysqli_error());

  } else {

      $res = mysqli_query($con, "insert into users values (55555623,'saran1','satya_saran','$pass' )");
      if( $res ) {
         print("i am ok");
      } else {
         print("bad");
      }
  }
?>

另外,也不建議將數據插入表中而不告知要使用的列。

使用以下效果:

($con, "insert into users (column1, column2, column3, column4) values (55555623,'saran1','satya_saran','$pass' )

旁注:如果第一個值的列不是(int) ,則也需要將其用引號引起來。

同樣,如果您的第一列是AUTO_INCREMENT ,則需要從列的類型中刪除AUTO_INCREMENT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM