簡體   English   中英

如何在PHP中使用存儲在數據庫中的SQL查詢中的變量

[英]How to use a variable in PHP that store in SQL query in database

我將我的 SQL 查詢存儲在數據庫中,在這個查詢中我使用了 PHP 變量; 然后當我從 MySQL 獲取數據時,查詢中使用的變量不起作用並且查詢死了! 我該怎么辦?

Exp:我將此查詢存儲在數據庫中:

"SELECT * FROM mytable WHERE id='$id' OR name='$name'"

然后當獲取這個查詢時,變量在這樣的代碼中不起作用:

mysqli_query($conn,$sql)

或者

mysqli_query($conn,"$sql")

在 php 中使用 (.) continate運算符和更多詳細信息請參閱

"SELECT * FROM mytable WHERE id='".$id."' OR name = '".$name."'"
mysqli_query - Performs a query on the database 
mysqli_fetch_array - Fetch a result row as a numeric array and as an associative array

嘗試以下代碼來獲取數據

$sql= mysqli_query($coni, "SELECT * FROM mytable WHERE id='$id' OR name='$name'");
$info = mysqli_fetch_array($sql)

執行mysqli_query()后必須使用mysqli_fetch_array() mysqli_query() 以下代碼將打印與您的查詢匹配的所有行。

$result = mysqli_query($conn, $sql);
while($row=mysqli_fetch_array($result)){
    print_r($row);
}

如果那不起作用。 確保您擁有正確的數據庫鏈接

$conn= mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

有關 mysqli_connect 的更多信息可以在文檔中看到。

但是使用 PDO(PHP 數據庫對象)更安全,因為它為准備好的語句提供了更好的安全層。

有一個關於 PDO教程 查看它以獲取更多詳細信息。 有關更多詳細信息,請參閱PDO 文檔

將語句存儲在數據庫中的問題之一是它假設在執行語句時在作用域中有名為$id$name變量。 如果改為使用准備好的語句和占位符,則可以在運行語句時綁定所需的值。

所以你的說法是...

"SELECT * FROM mytable WHERE id=? OR name=?"

然后你會使用它運行它

$stmt = mysqli_prepare($conn,$sql);
mysqli_stmt_bind_param($stmt, "ss", $id1, $searchNname);
mysqli_stmt_execute($stmt);
// Process data as you need to

(仍然不相信將這些語句保存在數據庫中是個好主意,但這取決於您。)

暫無
暫無

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

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