php sql 命令带中文,php - 在PHP奇怪的问题与%SQL命令里面 - SO中文参考 - www.soinside.com...

我有一个PHP文件,得到了一些参数将它们传递给SQL命令。第一个是这样的:

if (isset ($_GET['pedio'])){

$pedio = " ` pedio ` LIKE '%" . $_GET['pedio'] . "%'";

}

通过这种形式,代码不运行。问题是 ”%'”。如果我从“%“”删除%那么代码在运行,但它不是我想拿为表达什么。我试过了:

$pedio = " `pedio` LIKE '%" . $_GET['pedio'] . chr(37) . "'";

但它并没有帮助。如果我改变字符(37),以CHR(38),然后运行该代码,但我&中的表达,而不是%的结束。有什么不对呢?任何解决方案?

编辑:我的代码:

if (isset($_GET['pedio'])) {

$pedio = " pedio LIKE '%$pedio%'";

}

if (isset($_GET['instit_type'])) {

if ($pedio != "") {

$instit_type = " AND";

}

$instit_type.= " instit_type = '" . $_GET['instit_type'] . "'";

}

if (isset($_GET['city'])) {

if ($pedio != "" || $instit_type != "") {

$city = " AND";

}

$city.= " city = '" . $_GET['city'] . "'";

}

echo "

" . $pedio . " , " . $instit_type . " , " . $city . "

";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

$conn->set_charset("utf8");

// Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

$sql = "SELECT * FROM schools WHERE"; . $pedio;

// . $instit_type . $city . $category;

// echo $sql; $result = $conn->query($sql);

这种修改不工作之一:

if (isset ($_GET['pedio']))

{

switch ($_GET['pedio']){

case 1:

$pedio = " `pedio` LIKE '%1%'";

case 2:

$pedio = " `pedio` LIKE '%2%'";

case 3:

$pedio = " `pedio` LIKE '%3%'";

case 4:

$pedio = " `pedio` LIKE '%4%'";

}

}

现在,我注意到,

$pedio = " `pedio` = '%1%'";

代码是没有问题的,但运行的SQL命令是错误的,不返回任何结果。与=更换LIKE消除了我的问题?这怎么可能?什么是反正怎么回事?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值