Php 未知列';c63rd321和x27;在';其中第'条;
您好,我从一些用户那里得到以下错误:“where子句”中的未知列“c63rd321”它适用于一个用户,但不适用于所有其他用户任何想法Php 未知列';c63rd321和x27;在';其中第'条;,php,mysql,Php,Mysql,您好,我从一些用户那里得到以下错误:“where子句”中的未知列“c63rd321”它适用于一个用户,但不适用于所有其他用户任何想法 $query = 'SELECT first_name,last_name,is_admin FROM '.$database.'.users WHERE users.id='.$user_id.' LIMIT 1'; 是否需要添加到用户。id=”“为什么它适用于一个用户而不适用于其他用户看起来,$user\u id是一个字符串(“c63fb321”)而不是一个
$query = 'SELECT first_name,last_name,is_admin FROM '.$database.'.users WHERE users.id='.$user_id.' LIMIT 1';
是否需要添加到用户。id=”“为什么它适用于一个用户而不适用于其他用户看起来,
$user\u id
是一个字符串(“c63fb321”
)而不是一个整数。使用引号(和转义!)
(假设这里的
mysql\uuu
函数,但这也适用于PDO和mysqli)看起来$user\u id
是一个字符串(“c63fb321”
)而不是一个整数。使用引号(和转义!)
(假设这里的mysql\uu
功能,但这也适用于PDO和mysqli)请替换此:
$query = 'SELECT first_name,last_name,is_admin FROM '.$database.'.users WHERE users.id='.$user_id.' LIMIT 1';
。。。为此:
$query = 'SELECT first_name,last_name,is_admin FROM '.$database.'.users WHERE users.id=:user_id LIMIT 1';
^^^^^^^^
。。。并将user\u id
添加到准备好的语句参数中。如果你的库不支持准备好的语句,可以自由地要求进一步的细节,但是你应该考虑转入一个更好的库。 < P>请替换这个:
$query = 'SELECT first_name,last_name,is_admin FROM '.$database.'.users WHERE users.id='.$user_id.' LIMIT 1';
。。。为此:
$query = 'SELECT first_name,last_name,is_admin FROM '.$database.'.users WHERE users.id=:user_id LIMIT 1';
^^^^^^^^
。。。并将
user\u id
添加到准备好的语句参数中。如果你的库不支持准备好的语句,你可以自由地要求更多的细节,但是你应该考虑转入一个更好的库。 是你的用户ID总是整数吗?如果是这样,则不需要添加引号。但从你的问题中,我可以猜到它可能是字符串。您可以使用mysql\u real\u escape\u string()
作为快速测量()
但是,正如您从前面的答案中所知道的,如果您用mysqli或PDO重写它会更好。但是它应该很复杂,可能需要一些时间。您的用户id总是整数吗?如果是这样,则不需要添加引号。但从你的问题中,我可以猜到它可能是字符串。您可以使用
mysql\u real\u escape\u string()
作为快速测量()
但是,正如您从前面的答案中所知道的,如果您用mysqli或PDO重写它会更好。但是它应该很复杂,可能需要一些时间。您是否对
$database
或$user\u id
进行过清理?没有通过调用$\u SESSION[''设置变量您是否对$database
或$user\u id
进行过清理?没有通过调用$\u SESSION[''设置了变量用户id来自$\u会话['User']@Dan-我无法理解您的问题。用户id来自$\u会话['User']@Dan-我无法理解您的问题。我会尝试一下。感谢用户id确实是一个字符串,有几个破折号“-”字符,我试试看。感谢用户id确实是一个字符串,并且有几个破折号“-”字符,我刚刚访问了数据库,问题是其中一个用户有id integer,所有其他用户有一个字符串有id。我刚刚访问了数据库,问题是其中一个用户有id integer,所有其他用户有一个字符串有id。