簡體   English   中英

MySQL查詢不適用於PHP變量

[英]MySQL query not working with PHP variables

當我像這樣對查詢進行硬編碼時,查詢將返回正確的結果:

$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '1'") or
              die(mysql_error());

但是當我使用這樣的php變量時,查詢不返回任何結果:

 $data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '$ID'") or
              die(mysql_error());

我已經按如下方式初始化了上面的變量:

$ID = $_POST[ID];

變量每次都可以使用以下語句:

$sql = "INSERT INTO $table_name (post_ID, user_name, comments)
    VALUES ('$ID','$name', '$comment')";

因此,我不明白為什么變量會使用前面的語句正確地插入到我的sql表中,但不適用於查詢。 我在sql表中為post_ID字段使用varchar數據類型。

這是代碼的一些問題。 由於您的PHP變量在MySQL查詢中不起作用。 因此,您必須將變量傳遞給它。 只需一個報價,就可以像這樣傳遞它。

$ data = mysql_query(“ SELECT * FROM'$ table_name'WHERE post_ID ='1'”)或die(mysql_error());

謝謝

嘗試這個

$ID = $_POST['ID'];
$data = mysql_query("SELECT * FROM ".$table_name." WHERE post_ID = '".$ID."'") or
        die(mysql_error());

您能直接嘗試代替引號嗎

 $data = mysql_query("SELECT * FROM $table_name WHERE post_ID =$ID") or
              die(mysql_error());

如果將變量放在''中,則PHP解析器不會解析變量。 因此,請嘗試刪除單引號,即僅使用$ ID而不是'$ ID'

$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = $ID") or die(mysql_error());

嘗試使用這個

<?php
$query = "SELECT * FROM $table_name WHERE post_ID = "$ID;
$data = mysql_query($query);
?>

但是,您必須使用mysqli而不是mysql函數。

編碼愉快!

確保首先設置了$_POST['ID']

$ID = isset($_POST['ID']) ? $_POST['ID'] : <some_values>; #for debugging purpose

然后做:

$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '".$ID."'") or
        die(mysql_error());

暫無
暫無

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

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