我有一个包含两个数据cityname和zipcode .Now的表,我想找到New_york并显示邮政编码。我使用这段代码,但没有显示
$sql = sprintf("SELECT * FROM myTable WHERE cityname LIKE new_york",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);用php在mysql中找到一些东西的最好和快速的方法是什么?
发布于 2014-07-28 12:06:40
试试这个:
$sql = "SELECT * FROM myTable WHERE cityname LIKE '%New York%'";
$query = mysql_query($sql);要搜索的单词应该是单引号。只有单词将是表字段/列。
您应该为此使用PDO (有关PDO的更多信息),而不是旧的和废弃的mysql_*函数。见上面Mark Baker和Elias Van Ootegem的评论。
//注释#1:
使用var_dump($query);进行调试。成功地连接到mysql服务器?使用http://de2.php.net/manual/en/function.mysql-errno.php或http://de2.php.net/manual/en/function.mysql-error.php获取错误。
//注释2:
你对echo mysql_errno();和echo mysql_error();有什么看法?
//评论#3:
用户似乎需要密码,或者没有对所选数据库的访问或权限。检查mysql_connect($server, $username, $password)上的连接设置或phpMyAdmin用户的权限。
//注释#4:

//注释#5:
在phpmyadmin上使用SHOW GRANTS FOR my@localhost获得的输出。
发布于 2014-07-28 12:20:00
尝尝这个
$sql = sprintf("SELECT * FROM myTable WHERE cityname LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);sprintf希望%s知道如何使用$prefix替换,但您也需要向类似的地方添加一个%以生成LIKE 'New York%',因为您使用的是sprintf,如果它在该格式的末尾只看到一个% (因为%是它的控制字符),那么它将失败,所以您必须添加2个%%,所以sprintf将假设这是输出中希望的%,而不是一个不正确的格式请求。它的冲刺逃跑的方式,它的控制性格。
发布于 2014-07-28 12:38:24
您可以尝试这个$sql = "SELECT * FROM *FROM myTable cityname,如'%New York%‘;$query = mysql_query($sql);
https://stackoverflow.com/questions/24994799
复制相似问题