相同的选择在控制台上工作,但在PHP中不工作

相同的选择在控制台上工作,但在PHP中不工作,php,mysql,Php,Mysql,这让我很生气。 这是我现在正在使用的代码: <?php //open connection to mysql db $connection = mysqli_connect( "mysql.kit-series.net", "XXXXX", "XXXXXX", "kit_series_net" ) or die( "Error " . mysqli_error( $connection ) ); $connection->set_charset( "utf8" ); //fe

这让我很生气。 这是我现在正在使用的代码:

   <?php
//open connection to mysql db
$connection = mysqli_connect( "mysql.kit-series.net", "XXXXX", "XXXXXX", "kit_series_net" ) or die( "Error " . mysqli_error( $connection ) );
$connection->set_charset( "utf8" );

//fetch table rows from mysql db
$nombre = $_POST['nombre'];
$select = "SELECT ID FROM wp_qnnpx4_posts WHERE post_type='tvshows' AND post_title = '" . $nombre . "'";
$result = $connection->query( utf8_encode( $select ) );
$result = $result->fetch_assoc();
$id     = $result['ID'];
echo $select;
echo $id;

//close the db connection
mysqli_close( $connection );

除非处理非utf8字符串,否则不要使用
utf8\u编码。从您的问题和评论可以看出,您完全使用UTF8(HTML、数据库、数据库连接、PHP文件编码),因此调用
UTF8\u encode
不仅没有必要,而且会产生负面影响

正如在对以下项目的感谢性贡献中所述:

如果您的文本未在
ISO-8859-1
中编码,则不需要此功能。如果文本已在
UTF-8
中,则不需要此功能。事实上,将此函数应用于未在
ISO-8859-1
中编码的文本很可能只会对该文本进行篡改


你说把它放在控制台上是什么意思???我不认为你可以通过浏览器控制台执行PHP代码…:您是否在HTML标题中将字符集设置为UTF-8,如
?如果不是,则提交值的字符编码可能不是UTF-8并导致问题。数据库控制台MySQL来自PHPstorm。是的,HTML是UTF-8,就像我说的,如果我选择$select变量,它就是expect。但是如果您已经使用UTF-8,那么
utf8\u encode()
将产生一种厌恶效果。你没有试过吗?另外,请确保您的编辑器已将PHP文件保存为UTF8编码。您完全正确,我只关注$select,而忘记了该编码。对我来说太蠢了。谢谢你的回复