如果我的数据库表格包含users(name,job)
(john,Poster)
,我使用此代码与MySQLi
进行查询,那将会有效。
$job = "Poster";
$statement = $con->prepare("SELECT * FROM users WHERE `job` = ?");
$statement->bind_param("s",$job);
$statement->execute();
$statement->bind_result($name,$job);
while ($statement->fetch()){
echo $name;
}
如果我发了$job = "NOTHING";
并且没有结果那么我怎么能显示错误,例如echo "No reuslts found";
!!上面的代码如果找不到$job
则不会显示任何内容。 〜谢谢
修改 这个也不行:(
$job = "NOTHING"; // should not found and should gives error
if ($statement = $con->prepare("SELECT * FROM users WHERE `job` = ?")){
$statement->bind_param("s",$job);
$statement->execute();
$statement->bind_result($name,$job);
while ($statement->fetch()){
echo $name;
}
}else{
echo "No results found dude";
}
答案 0 :(得分:0)
不要使用mysqli。准备好的陈述无法使用 请改用PDO。
使用PDO,您的代码将更短,更明智,更有效。
$statement = $con->prepare("SELECT * FROM users WHERE `job` = ?");
$statement->execute(array($job));
if ($row = $statement->fetch()){
echo $row['name'];
} else {
echo "No results found dude";
}
您需要先创建连接。像这样的东西
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'dbuser';
$pass = 'dbpass';
$con = new PDO($dsn, $user, $pass);
您可以在manual page
上查看详细信息作为进一步的步骤,您可以转到一些帮助程序库,这将使您的代码更短:
$name = $db->getOne("SELECT name FROM users WHERE job=?s",$job);
if ($name) {
echo $name;
} else {
echo "No results found dude";
}
但首先要熟悉原始API函数是明智的。