在我的页面中,我有这个带有echo的代码.
<?php
include("../config.php");
$q = mysql_query("SELECT propertyaddress FROM propertydetail WHERE active='yes' and leasedatefrom='".date("m-d-Y", strtotime('+1 months'))."'");
$res = mysql_fetch_array($q);
echo "<br/>pdetail=".$pdetail=trim($res['propertyaddress']);
echo $query="SELECT * FROM tenantmaster WHERE propertyaddress like '".$pdetail."'";
//echo $query="SELECT * FROM tenantmaster ";
//echo $query="SELECT * FROM tenantmaster WHERE propertyaddress = '1934 Heron Ave Unit D Schaumburg IL 60193'";
$resultdb = mysql_query($query);
if (!$resultdb) {
die('Invalid query: ' . mysql_error());
}
else{
echo "<br/>right query";
}
echo "<br/>num of row===".mysql_num_rows($resultdb);
$rowt = mysql_fetch_array($resultdb);
echo "<br/>row===".$rowt['name'];
exit;
?>
Run Code Online (Sandbox Code Playgroud)
config.php文件
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "gms_estate";
/*
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "gms_estate";
*/
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)
or die("Opps some thing went wrong");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
?>
Run Code Online (Sandbox Code Playgroud)
问题是我的第一个查询$q
正在工作,但查询$query
也工作,但是mysql_num_rows($resultdb)
不工作并显示0
行但是,当我运行echo查询到数据库时,它显示1
行.为什么?
我试过$res['propertyaddress']
变量trim()
但没有成功.
但是当我使用1934 Heron Ave Unit D Schaumburg IL 60193(那是我的变量值)而不是$res['propertyaddress']
那时它正在工作.
所以,当我直接赋予变量值时,它就可以正常工作,但是当我给变量而不是.为什么?
比较来自多行字段的文本条目的一个常见问题是,您可能在第一个查询的结果中有"换行符"或"制表符",但这不在第二个查询中.(其他陷阱是"不间断的空间").
当您在HTML中回显时,您将看不到输出中的那些(因此复制和粘贴工作),但它们将在查询中使用(因此直接输入失败).尝试"查看源代码"(显示换行符)或在命令行中运行,因为这可能会为您提供更多线索.
现在,使用除去字母数字和空格以外的任何内容 preg_replace
$pdetail = trim( preg_replace("/[^0-9a-zA-Z ]/", "", $res['propertyaddress']) );
Run Code Online (Sandbox Code Playgroud)
最终你会想要调整它以涵盖你的所有用例,或者你发现它是一个"换行符"只是删除那些 - 但你需要找到不同的东西.
并且,根据评论:检查mysqli/PDO参数化查询.如果原始地址包含单引号,那么也会失败(结果未知).这是一个痛苦的第一次,但它会在以后拯救你很多,使你的代码更容易阅读,并在这里得到更多的帮助(因为你的代码更容易阅读).
http://php.net/manual/en/pdo.prepared-statements.php
归档时间: |
|
查看次数: |
915 次 |
最近记录: |