php
  • mysql
  • 2013-10-31 29 views 2 likes 
    2

    我是一名android/java開發人員,我正在努力使用php。 我已經做到了在數據庫中插入新用戶,現在我想獲得他們的ID。如何使用程序化php從mysql獲取user_id?

    我該如何處理結果?我想將它分配給一個變量。 PS:我使用的是mysql,而不是mysqli。我不知道如何使用mysql,而不是mysqli。

    編輯:這是我做的:

    $query = "SELECT user_id FROM users WHERE user_email = '" . $user_email ."';"; 
    $store_info = mysql_fetch_array(mysql_query($query)); 
    $user_id = $store_info['user_id']; 
    $response["message"] = "User created with id: " . $user_id; 
    echo json_encode($response); 
    

    和插入(成功)後的錯誤信息在數據庫中的用戶:

    null{"success":3,"message":"User created with id: "} 
    
    +0

    我添加了一個新的答案:你在SQL代碼中有一個語法錯誤 – user4035

    +1

    [請停止使用mysql_ *函數](http://stackoverflow.com/q/12859942/1238019)在新代碼中,它們[正式棄用] (https://wiki.php.net/rfc/mysql_deprecation)。而不是,看看[準備好的陳述](http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html),並使用[Mysqli](http:///php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)。 – zessx

    +0

    我只是想讓我的api快速啓動並運行。當我這樣做時,我將開始學習php和mysqli和pdo。只是想要快速的結果,所以我可以激勵我自己 –

    回答

    6

    我假設你正在使用的MySQLi API

    $query = "SELECT user_id FROM users WHERE user_email = '$user_email'"; //Your Query 
    
    $store_info = mysqli_fetch_array(mysqli_query($connection, $query)); 
    //Execute the query, fetch the result, it's just one result so no need for a while loop 
    
    echo $store_info['user_id']; //echo id 
    

    按照與c omments,你請求mysql_()版本,所以在這裏你去...

    $query = "SELECT user_id FROM users WHERE user_email = '$user_email'"; //Your Query 
    
    $store_info = mysql_fetch_array(mysql_query($query)); 
    //Execute the query, fetch the result, it's just one result so no need for a while loop 
    
    echo $store_info['user_id']; //echo id 
    

    不過考慮使用mysqli_()PDO代替。爲什麼?因爲mysql_()現在已經廢棄,閱讀文檔頁面它說紅色框...

    enter image description here

    參考this答案PDO教程

    +0

    無林不使用的mysqli,即時通訊從函數和連接變量中刪除'i',休息保持不變,但我想建議你使用mysqli或者pdo –

    +0

    @ J.Kowalski測試 –

    +0

    @ J.Kowalski更好的方式是使用mysqli,因爲mysql已經被棄用了。 – StBlade

    3

    這裏是PDO變種:

    <?php 
    //credentials 
    $host = 'localhost'; 
    $user = "user"; 
    $password = ''; 
    $db_name = 'test'; 
    $port = 3306; 
    
    //connection to the database 
    try 
    { 
        $connection = new PDO("mysql:host=$host;port=$port;dbname=$db_name", $user, $password); 
        $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
    catch (PDOException $e) 
    { 
        echo 'Connection failed: ' . $e->getMessage(); 
    } 
    
    //prepare and execute SELECT statement 
    $sth = $connection->prepare("SELECT user_id FROM users WHERE user_email = :email"); 
    $sth->execute(array(':email' => $user_email)); 
    
    $record = $sth->fetch(PDO::FETCH_ASSOC); 
    print $record["user_id"]; 
    
    +0

    我需要爲了使用PDO? –

    +0

    @ J.Kowalski安裝的東西通常這個庫是用PHP一起運來。難道我的代碼運行的嗎? – user4035

    +0

    @ J.Kowalski尋找EXTENS ion = pdo.so在php.ini中 – user4035

    0

    如果你使用mysql(但你不應該這樣做,它已被廢棄):

    $result = mysql_query("SELECT user_id FROM users WHERE user_email = '$user_email'"); 
    $row = mysql_fetch_row($result); 
    
    echo $row[0]; // you result (id) 
    
    0

    連接:

    define("HOST","localhost"); 
    define("USER","mysql_username"); 
    define("PASS","password"); 
    
    $conn = mysql_connect(HOST,USER,PASS) or die("<h3>Sorry, could not connect to MySQL. Please Try Again</h3>"); 
    $db = mysql_select_db(DBNAME,$conn) or die("<h3>Sorry, could not connect to Database. Please Try Again</h3>") 
    

    查詢:

    $query = "SELECT user_id FROM users WHERE user_email = = '" . $user_email . "'"; 
    $result = mysql_query($query); 
    $row=mysql_fetch_assoc($result); 
    
    0

    你的錯誤出現,因爲在SQL查詢中的錯誤:你用=操作兩次:

    $query = "SELECT user_id FROM users WHERE user_email = = '" . $user_email . "'"; 
    

    必須是:

    $query = "SELECT user_id FROM users WHERE user_email = '" . $user_email . "'"; 
    
    相關問題