正在从SQL查询的变量中读取字符串


Reading String from Variable for SQL Query

SQL新手在这里。。。

$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = 'myid'");按我想要的方式工作。

$compid1 = 'myid';
$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = @compid1");

不会产生相同的结果。

我也尝试过$compid1和其他各种东西,但都没有成功。

很抱歉问了这么简单的问题,但我仍然无法回答。谢谢!

更新:哦,是的。。。问题。如何使用预存变量进行WHERE检查?

您需要在变量之前使用$,而不是@。你需要在它周围加引号,因为它是一个字符串:

$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = '$compid1'");

但是,最好停止使用mysql扩展。使用PDO或mysqli,并使用带参数的prepared语句。例如,在PDO中,它将是:

$stmt = $conn->prepare("SELECT first_name FROM gamers WHERE comp_id = :compid");
$stmt->bindParam(':compid', $compid1);
$stmt->execute();

将字符串变量封装在一对引号中。

$compid1 = 'myid';
$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = '$compid1'");