如果PHP中不存在该列,我如何才能使$result
过于平等?
我在想这样的事情:
$result=mysql_query("SELECT * FROM users WHERE username=$key DESC LIMIT 1")or die ($result = '');
但我被告知错了。
答案 0 :(得分:3)
这是错误的,因为你在发生数据库错误时使用die杀死脚本,而不是在没有找到行时执行操作。
你可能需要的更像是:
$result = mysql_query($query);
if ($result) {
if ($row = mysql_fetch_assoc($result)) {
// do stuff with row
} else {
// do stuff without row
}
} else { // not needed but left here for illustration purposes
// this is the part that would occur, had you called mysql_query(...) or die;
die(mysql_error());
}
答案 1 :(得分:0)
$result=mysql_query("SELECT * FROM users WHERE username= '$key' LIMIT 1")or die (mysql_error());
然后检查mysql_num_rows()
的结果答案 2 :(得分:0)
如果您的意思是结果返回0行,您可以使用mysql_num_rows进行检查,如下所示:
$result=mysql_query("SELECT * FROM users WHERE username=$key DESC LIMIT 1");
if (mysql_num_rows($result) == 0)
$result = '';
答案 3 :(得分:0)
如果出现错误,您的代码会将$result
设置为''
,在这种情况下,mysql_query
会返回false。它也会暂停代码,因为你正在调用die()
。但是,空结果集不是错误。在这种情况下,mysql_query
返回没有行的有效资源标识符。如果我理解你的问题,这就是你想要做的事情:
$result=mysql_query("SELECT * FROM users WHERE username=$key DESC LIMIT 1");
if (mysql_num_rows($result) == 0){
$result = '';
}
答案 4 :(得分:0)
<?php
// Here I assume you're using PHP PDO
$pdo = new PDO("mysql:server=localhost;dbname=mydatabase", "root", "");
$result = $pdo->query("SELECT * FROM users WHERE username=$key DESC LIMIT 1");
$errorcode = $pdo->errorCode();
$errorinfo = $pdo->errorInfo();
// Columns doesn't exist
if($errorcode == "43072") $result = "";
// Other error...
else if($errorcode != "00000") die("MySQL Error: " . $errorinfo[2]);
?>