[英]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.