我有这个PHP代码,它选择一个简单的值:
$name = $mysqli->query('SELECT name FROM users WHERE id = ' . $id . ' LIMIT 1')->fetch_object()->name;
Run Code Online (Sandbox Code Playgroud)
现在,如果结果为0,则抛出错误.
如果没有结果,我想要返回一个默认值,如"No name".
有什么建议?
不要直接获取名称,而是先检查是否有数据.这样的事情应该有效:
$result = $mysqli->query('SELECT name FROM users WHERE id = ' . $id . ' LIMIT 1')->fetch_object();
$name = (!$result) ? 'No name' : $result->name;
Run Code Online (Sandbox Code Playgroud)
另外,正如@RiggsFolly所提到的,建议使用预准备语句来减少SQL的可能性:
$stmt = $mysqli->prepare("SELECT name FROM users WHERE id = ? LIMIT 1");
$stmt->bind_param('i',$id);
$stmt->execute();
$result = $stmt->get_result()->fetch_object();
Run Code Online (Sandbox Code Playgroud)