Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串在php中不同但相等_Php_Vtiger - Fatal编程技术网

字符串在php中不同但相等

字符串在php中不同但相等,php,vtiger,Php,Vtiger,我正在使用eclipse编辑器。我正在vtiger 5.4中编程。在我的文件config.inc.php中,变量$default\u charset设置为 $default_charset = 'UTF-8'; 我正在尝试使用下一个变量在mysql中进行sql查询 $sql = "select cod_dpto from vtiger_ubi where dpto='" . $dpto . "'"; 当我打印变量$dpto时,我得到了“SAñA”,但是查询的执行 $adb->query

我正在使用eclipse编辑器。我正在vtiger 5.4中编程。在我的文件config.inc.php中,变量$default\u charset设置为

$default_charset = 'UTF-8';
我正在尝试使用下一个变量在mysql中进行sql查询

$sql = "select cod_dpto from vtiger_ubi where dpto='" . $dpto . "'";
当我打印变量
$dpto
时,我得到了
“SAñA”
,但是查询的执行

$adb->query ( $sql );
不起作用。但当我将查询修改为:

$sql = "select cod_dpto from vtiger_ubi where dpto='SAÑA'";
指令

$adb->query ( $sql );
返回我需要的值

您能否帮助我,如何将变量
$dpto
转换为sql查询工作正常的变量

编辑

我尝试使用下面的代码进行查询,但没有使用vtiger,对于两个使用变量并写入“SAñA”的情况,我得到了0个结果

$servername = "localhost";
$username = "root";
$password = "peru2006";
$dbname = "consuladoperurio_com_br_2";
$port = "3306";

// Create connection
$conn = new mysqli ( $servername, $username, $password, $dbname, $port );
// Check connection
if ($conn->connect_error) {
die ( "Connection failed: " . $conn->connect_error );
}
$sql = "select cod_dpto from vtiger_ubigeo where dpto='$dpto'";
echo $sql;
$result = $conn->query ( $sql );
if ($result->num_rows > 0) {
// output data of each row
while ( $row = $result->fetch_assoc () ) {
    echo "id: " . $row ["cod_dpto"] "<br>";
}
} else {
echo "0 results";
}
$conn->close ();
$servername=“localhost”;
$username=“root”;
$password=“peru2006”;
$dbname=“ConsultadoPerurio\u com\u br\u 2”;
$port=“3306”;
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname、$port);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
$sql=“从vtiger\u ubigeo中选择cod\u dpto,其中dpto='$dpto';
echo$sql;
$result=$conn->query($sql);
如果($result->num_rows>0){
//每行的输出数据
而($row=$result->fetch_assoc()){
echo“id:.”行[“cod_dpto”]“
”; } }否则{ 回显“0结果”; } $conn->close();
您的Select语句如下所示:

$sql = "select cod_dpto from vtiger_ubi where dpto='".SAÑA."';
您可能希望它看起来像:

$sql = "select cod_dpto from vtiger_ubi where dpto='$dpto'";

请注意,没有concat运算符,变量仅用单引号括起来

变量
$dpto
中的数据来自哪里?邮递数据库?什么是
mb_检测编码($dpto)返回?@Juan在将其插入查询之前尝试utf8_编码($dpto)
。@Juan
iconv('ASCII','UTF-8//IGNORE',$dpto)
似乎是我刚刚发现的一个更好的选择:@ajmedway$dpto充满了一个查询。他正确地转义了变量,你的第一行不是它的实际解析方式。@Kisaragi谢谢,但我已经测试过了,这没有问题work@pbond是的,这不是使用php字符串文字时的工作方式,它将被这样解析:dpto='SAñA'@Juan我刚刚指出pbond是正确的,顶行不是它真正的工作方式