我想要显示名字、姓和县,但是当我试图在这里连接回显语句时,我会收到错误。我该怎么纠正呢?
$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中找到
发布于 2013-06-17 21:13:11
该代码应回答OP关于其当前代码的问题:
$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';
?>另外,根据您的错误,请确保这一行:
`last_name`,`county`目前不是
`last_name`.`county`注意逗号/句号的差异。
或者,如果您试图显示名、姓和县,请使用以下命令:
$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';
?> 并最终获得更好的性能和支持的代码使用。
$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();发布于 2013-06-17 21:19:06
您最简单的方法是使用更新版本的MySQL函数- mysqli是一个非常好的选择。但是,如果您必须依赖旧的函数集,那么请阅读文档;mysql_result返回数据,您应该在代码中自己准备它。此外,我必须同意@MarcB -使用mysql_fetch_assoc或类似的东西,当oyu只是和真正期待一一行。
但是,如果您有时间,可以合并到mysqli或PDO方法--它们更现代(换句话说,它们一直都是面向对象的),而且更安全。
发布于 2013-06-17 21:01:59
首先,不要使用mysql_*()库。它已经过时了。但是,如果您必须使用它,那么就不要使用mysql_result。效率很低。一个更好的过程是使用fetch函数获取整个行。
$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'];
}https://stackoverflow.com/questions/17156765
复制相似问题