簡體   English   中英

如何在SQL查詢中插入php變量? 錯誤在我的查詢中?

[英]How to insert a php variable in an sql query? Mistake in my query?

我寫了這個簡單的代碼來從sql表中刪除一個博客。 但它給出了一個錯誤

Could not delete data: Unknown column '$qid' in 'where clause'

不明白為什么。 $qid是變量,而qid是列名,它給我這個錯誤。

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db('trial1');
if(! $conn )
{
    die('Could not connect: ' . mysql_error());
}
function check_login(){
        return 12;
}
$return_array = array();
if( check_login()!=NULL){
    $qid =1;
    $sql='DELETE FROM blog_post WHERE qid = $qid';
    $retval = mysql_query($sql, $conn);
    if (!$retval){
        die('Could not delete data: ' . mysql_error());
        $return_array["success"] = 0; //If deletion unsuccessful
        echo json_encode($return_array);
    }
    else{
        $return_array["success"]=1; //If deletion successful 
        echo json_encode($return_array);
    }
}
 ?>

變量不會在單引號下解析。 用雙引號括起SQL查詢"

$sql="DELETE FROM `blog_post` WHERE `qid` = $qid"; //<-- Like this.

PHP 5.5.0 ,不推薦使用此( mysql_* )擴展,將來將刪除。 相反,應該使用MySQLiPDO_MySQL擴展的Prepared Statements來抵御SQL注入攻擊!

您應該使用單引號將輸入包裝在sql中:

 $sql="DELETE FROM `blog_post` WHERE `qid` = '$qid'";

首先,您需要確保表中有列名qid

然后嘗試:

$sql='DELETE FROM blog_post WHERE qid ='.$qid;

暫無
暫無

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

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