PHP sql查询未向前端返回正确的行数

我正在尝试创建一个网站,其中 php 与后端 sql 连接。有 1 行用户名 = 'user1'。


然而,这个简单的 PHP 代码来获取“user1”的详细信息 -


<?php

    /* Database credentials. Assuming you are running MySQL

    server with default setting (user 'root' with password 'root') */

    define('DB_SERVER', 'localhost');

    define('DB_USERNAME', 'root');

    define('DB_PASSWORD', 'root');

    define('DB_NAME', 'startup');


    /* Attempt to connect to MySQL database */

    $conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);


    // Check connection

    if($conn === false){

        die("ERROR: Could not connect. " . mysqli_connect_error());

    }

    echo '<p>Connected successfully</p>';


    $sql = "SELECT id, username, password FROM users WHERE username = ?";

    $stmt = mysqli_prepare($link, $sql);

    $param_username = "user1";

    mysqli_stmt_bind_param($stmt, "s", $param_username);


    mysqli_stmt_execute($stmt);

    // mysqli_stmt_store_result($stmt);

    echo '<p>done</p>';

    $val = mysqli_stmt_num_rows($stmt);

    printf("%%d = '%d'\n", $val); // standard integer representation

?>

上面的代码返回这个输出 -

http://img4.mukewang.com/6134b4210001859901690091.jpg

$val 的值为 0,显然有 1 行用户名 = 'user1'。请帮忙,我需要在我的 php 脚本中获取“user1”的详细信息。


大话西游666
浏览 157回答 2
2回答

扬帆大鱼

您需要在任何地方正确使用连接变量名称。(在$conn您的情况下,它是,但您使用了$link)<?php&nbsp; &nbsp; /* Database credentials. Assuming you are running MySQL&nbsp; &nbsp; server with default setting (user 'root' with password 'root') */&nbsp; &nbsp; define('DB_SERVER', 'localhost');&nbsp; &nbsp; define('DB_USERNAME', 'root');&nbsp; &nbsp; define('DB_PASSWORD', 'root');&nbsp; &nbsp; define('DB_NAME', 'startup');&nbsp; &nbsp; $conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);&nbsp; &nbsp; /* check connection */&nbsp; &nbsp; if (!$conn) {&nbsp; &nbsp; &nbsp; &nbsp; printf("Connect failed: %s\n", mysqli_connect_error());&nbsp; &nbsp; &nbsp; &nbsp; exit();&nbsp; &nbsp; }&nbsp; &nbsp; $param_username = "user1";&nbsp; &nbsp; $stmt = mysqli_prepare($conn, "SELECT id, username, password FROM users WHERE `username` = ?");&nbsp; &nbsp; mysqli_stmt_bind_param($stmt, "s", $param_username);&nbsp; &nbsp; /* execute prepared statement */&nbsp; &nbsp; mysqli_stmt_execute($stmt);&nbsp; &nbsp; printf("%d Row inserted.\n", mysqli_num_rows($stmt));&nbsp; &nbsp; /* close statement and connection */&nbsp; &nbsp; mysqli_stmt_close($stmt);&nbsp; &nbsp; /* close connection */&nbsp; &nbsp; mysqli_close($conn);?>

慕婉清6462132

你做错了什么,请更新并尝试$sql = "SELECT id, username, password FROM users WHERE username = ?";$stmt = mysqli_prepare($link, $sql);$param_username = "user1";mysqli_stmt_bind_param($stmt, "s", $param_username);mysqli_stmt_execute($stmt);
打开App,查看更多内容
随时随地看视频慕课网APP