[英]query works in sql, not in php
我有這個查詢,我可以對我的數據庫運行,它工作正常。 但是,當我在PHP
版本中嘗試時,得到0個結果。 我缺少基本的東西,我只是無法分辨它是什么。
詢問
SELECT *
FROM table_admin_20
WHERE column1 = '0607'
的PHP
$store_info_query = "SELECT * FROM '".$table_name."' WHERE 'column1' = '".$store_number."'";
if ($query_run = mysql_query($store_info_query)) {
if (mysql_num_rows($query_run) == NULL) {
$response["success"] = 0;
echo json_encode($response);
echo 'nope';
} else {
while ($row = mysql_fetch_assoc($query_run)) {
$store_info = $row['column1'];
echo '1111111';
echo $store_info;
}
}
} else {
echo 'fail';
}
我知道我對SQL
注入有0保護,我只是想拉數據,這還沒有實現。 無論如何,我每次都會收到“失敗”響應。 謝謝你的幫助。
事后不要添加安全性,只需切換到PDO或mysqli並使用准備好的語句,這樣您就不必再擔心這些值了。 對於表名或列名,您將需要使用白名單。
問題的原因是您引用了表名和字段名。 如果需要轉義,請使用反引號:
$store_info_query = "SELECT * FROM `".$table_name."` WHERE `column1` = '".$store_number."'";
您必須將表名和列名的`替換為`。 '僅用於價值。 嘗試這個:
$store_info_query = "SELECT * FROM `".$table_name."` WHERE `column1` = '".$store_number."'";
請避免使用*並重新考慮您的安全策略。 如前所述,請看一下PDO: http : //php.net/manual/zh/book.pdo.php
您在表名和列名兩邊加上了錯誤的引號。 嘗試這個
$store_info_query = "SELECT * FROM `".$table_name."` WHERE `column1` = '".$store_number."'";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.