Php 在MYSQL中使用变量选择查询的位置

Php 在MYSQL中使用变量选择查询的位置,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我正试图在MYSQL的SELECT WHERE查询中包含变量。 我希望能够使用变量,以及假符号“!=” 例如: select * from XXX where id != '$id' 为什么这不起作用,我怎样才能使它起作用?最好使用mysqli prepared语句或PDO,因为在最近的PHP版本中,mysql_*函数已被弃用。使用mysqli prepared语句检查查询的外观 <?php $mysqli = new mysqli("localhost", "my_user", "m

我正试图在MYSQL的SELECT WHERE查询中包含变量。 我希望能够使用变量,以及假符号“!=”

例如:

select * from XXX
where id != '$id'

为什么这不起作用,我怎样才能使它起作用?

最好使用mysqli prepared语句或PDO,因为在最近的PHP版本中,mysql_*函数已被弃用。使用mysqli prepared语句检查查询的外观

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("SELECT * XXX WHERE id != ?");

$stmt->bind_param( "d", $value); 
// 'd' is a format integer, for string use 's'

$stmt->execute();

$stmt->bind_result($col1);
// then fetch and close the statement

如果您在php中使用此代码,则可以使用

$query = "select * from XXX where id != {$id}";


如果您试图在phpmyadmin中使用这些变量,我认为这是不可能的。

当您询问如何在mysql查询中传递变量id时,请检查下面的内容,其他很多人已经回答了您有关php的问题

set @id=4;
select * from XXX
where id != @id;

如果整个查询包含在双引号中,则可以在查询字符串中插入变量。如果没有,则必须在它们后面加上一个点<代码>“选择*自”$表“名称”其中…'
请参见:php.net/manual/en/class.mysqli.phpPlease,切勿将变量直接插入SQL;这是主要的原因。是的,Yuki,我已经提到了这两个方面,一个是对OP问题的直接回答,另一个是建议是的,但你没有提到为什么你的建议很有价值!:)请考虑在“建议”之前删除所有内容(这是实际的正确答案)。几十年的糟糕代码传播已经足够了。@AlexB-删除了那些易受攻击的查询。:)亲爱的-ve投票者,我已经在我的回答中提到,如果他想在mysql中用纯mysql做这件事……语法上有什么问题吗。。
set @id=4;
select * from XXX
where id != @id;