繁体   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