簡體   English   中英

如何從PHP中的MySQL查詢獲取單個值

[英]How to get single value from MySQL query in PHP

我知道這篇文章與許多其他Stack Overflow問題類似。 但是,他們完全沒有幫助解決這個問題。 我希望查詢返回單個值並將其存儲在變量中。 SQL查詢在數據庫中運行良好,但不適用於PHP。 我在哪里錯了?

$datelink = $_GET['bdate'];
$nid = $mysqli->query("select `newsletterId` from `newsletter` where ndate='$datelink'")->fetch_object()->name;  
$datelink=$_GET['bdate'];
$nid= $mysqli->query("SELECT `newsletterId` FROM `newsletter` WHERE ndate='$datelink' LIMIT 1")->fetch_object()->name;

在查詢數據庫之前,您應該啟動連接。

$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}

僅從$ _GET追加字符串也很危險。 您的網站可能會受到SQL注入的攻擊。 您絕對應該在准備好的語句中使用PDO 或其他類似的庫,例如,我喜歡dibi

更新:您正在訪問的列name不存在。 它應該引發一個通知( PHP Notice: Undefined property: stdClass::$name )。 如果您沒有看到通知並且您正在本地開發(當然應該),則可以在error_reporting = E_ALL php.ini文件中啟用它。

您可能需要column newsletterId 總共:

$mysqli = new mysqli('example.com', 'user', 'password', 'database');
if ($mysqli->connect_errno) {
    echo 'Failed to connect to MySQL: ' . $mysqli->connect_error;
}
$dateRaw = $_GET['bdate']; // for example '22.12.2012', if this value is already in format YYYY-MM-DD, you can step next line and use it
$date = date('Y-m-d', strtotime($dateRaw));


$statement = $mysqli->prepare("SELECT `newsletterId` FROM `newsletter` WHERE `ndate`=? LIMIT 1");
$statement->bind_param('s', $date); // replace the question mark with properly escaped date
$statement->execute();
$result = $statement->get_result();

if ($result->num_rows) {
    $newsletterObject = $result->fetch_object();
    $newsletterId = $newsletterObject->newsletterId; // you had $newsletterObject->name here
} else {
    echo "Newsletter with the date doesn't exist";
}
$statement->close();

最初,我認為有一種簡單的方法來獲取單個值,但找不到它。 因此必須使用下面的完整代碼來獲取值。

$sql3="select newsletterId from newsletter where ndate='$bdate' limit 1";
$result3 = $conn->query($sql3);
    if ($result3->num_rows > 0) {

    while($row3 = $result3->fetch_assoc()) {                    
    $nid=$row3['newsletterId']; //Here is where the single value is stored.

    }
    } else {
        echo "0 results";
    }

暫無
暫無

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

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