首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >连接具有mysql_result的echo语句

连接具有mysql_result的echo语句
EN

Stack Overflow用户
提问于 2013-06-17 20:59:14
回答 3查看 264关注 0票数 0

我想要显示名字、姓和县,但是当我试图在这里连接回显语句时,我会收到错误。我该怎么纠正呢?

代码语言:javascript
复制
$query = mysql_query("
SELECT `first_name`, `last_name`,`county`
FROM  `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'

");
  echo (mysql_num_rows($query) !== 0)? mysql_result($query,0,'first_name'):'Name not found';
?>

这是我收到的信息:

警告: mysql_result():last_name.county未在第14行C:\xampp\htdocs\ajax_Contact\name.php中的MySQL结果索引5中找到

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-17 21:13:11

该代码应回答OP关于其当前代码的问题:

代码语言:javascript
复制
$query = mysql_query("
SELECT `first_name`, `last_name`,`county`
FROM  `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'

");
  (mysql_num_rows($query) !== 0) ? print mysql_result($query,0,'first_name') : print 'Name not found';
?>

另外,根据您的错误,请确保这一行:

代码语言:javascript
复制
`last_name`,`county`

目前不是

代码语言:javascript
复制
`last_name`.`county`

注意逗号/句号的差异。

或者,如果您试图显示名、姓和县,请使用以下命令:

代码语言:javascript
复制
$query = mysql_query("
SELECT `first_name`, `last_name`,`county`
FROM  `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'

");
  (mysql_num_rows($query) !== 0) ? print mysql_result($query,0,'first_name')." ".mysql_result($query,0,'last_name')." ".mysql_result($query,0,'county') : print 'Name not found';
?> 

并最终获得更好的性能和支持的代码使用。

代码语言:javascript
复制
$mysqli = new mysqli("your_host", "your_user", "your_password", "your_database");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "
SELECT `first_name`, `last_name`,`county`
FROM  `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'

";
$result = $mysqli->query($query);

while($row = $result->fetch_array()){
    $rows[] = $row;
}

if($result->num_rows === 0){
    print 'Name not found';
}

foreach($rows as $row){
    print $row['first_name']." ".$row['last_name']." ".$row['county'];
}

/* free result set */
$result->close();

/* close connection */
$mysqli->close();
票数 2
EN

Stack Overflow用户

发布于 2013-06-17 21:19:06

您最简单的方法是使用更新版本的MySQL函数- mysqli是一个非常好的选择。但是,如果您必须依赖旧的函数集,那么请阅读文档;mysql_result返回数据,您应该在代码中自己准备它。此外,我必须同意@MarcB -使用mysql_fetch_assoc或类似的东西,当oyu只是和真正期待一一行。

但是,如果您有时间,可以合并到mysqli或PDO方法--它们更现代(换句话说,它们一直都是面向对象的),而且更安全。

票数 -1
EN

Stack Overflow用户

发布于 2013-06-17 21:01:59

首先,不要使用mysql_*()库。它已经过时了。但是,如果您必须使用它,那么就不要使用mysql_result。效率很低。一个更好的过程是使用fetch函数获取整个行。

代码语言:javascript
复制
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($row);
if (mysql_num_rows($result) != 0) {
  echo $row['first_name'], $row['last_name'], $row['county'];
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17156765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档