Php 从mysql_connect切换到PDO:mysql_num_rows()期望参数1是资源
我有使用mysql_connect的代码,据我所知,该代码现在已被弃用,我切换到以下代码(我在本地工作): 因为,在脚本返回后,连接不起作用。我的PDO连接脚本有问题,但我不明白我做错了什么。详细信息对于在本地主机上登录phpMyAdmin是正确的Php 从mysql_connect切换到PDO:mysql_num_rows()期望参数1是资源,php,mysql,pdo,Php,Mysql,Pdo,我有使用mysql_connect的代码,据我所知,该代码现在已被弃用,我切换到以下代码(我在本地工作): 因为,在脚本返回后,连接不起作用。我的PDO连接脚本有问题,但我不明白我做错了什么。详细信息对于在本地主机上登录phpMyAdmin是正确的 function user_exists($username){ $sql = "SELECT `id` FROM `users` WHERE `username` = '".$username."'"; $query
function user_exists($username){
$sql = "SELECT `id` FROM `users` WHERE `username` = '".$username."'";
$query = mysql_query($sql);
$result = mysql_num_rows($query);
if($result == 1){
// username does already exist
return true;
}else{
// username doesn't exist in the database
return false;
}
}
PDO完全独立于mysql扩展,您还必须更新函数调用<例如,code>mysql\u查询应该是和的组合 请注意:请使用预先准备好的语句,您的示例查询是完全不安全的 例如,有人要求:
// initialize PDO
$dbh = new PDO("mysql:host=$hostname;dbname=mysql", $DBusername, $DBpassword);
// Prepare a query
$sql = "SELECT COUNT(*) AS count
FROM users
WHERE username = ?
LIMIT 1";
$statement = $dbh->prepare($sql);
// execute the query
$statement->execute(array($username));
// retrieve the first row
$row = $statement->fetch();
if ($row['count']) echo 'The user exists';
else echo 'The user does not exist';
PDO有自己的检查行计数的方法。例如,当执行平面查询时,它会返回结果数@Rottingham除了PDO之外,还有什么可以用于我以前的函数吗?这是我使用PHP的第一段代码,我真的不知道我做错了什么,也不知道该去哪里。PDO+
mysql.*
functions=不是一个好的组合。我需要更新哪些函数才能使其正常工作?我不明白这个错误。@Francesca你必须全部更改,请阅读手册:)以什么方式?您能提供需要更改的内容吗?他们怎么了?如有任何信息,将不胜感激。我以前从未使用过PHP或数据库。这是与mysql_connect一起使用的。继续使用它是否存在重大问题?因为它是有效的,而这是无效的。@Francesca我刚刚添加了一个例子。并且:mysql
扩展不应再使用,将来可能会在没有任何进一步警告的情况下删除。@Francesca要了解有关我的示例以及PDO的更多信息,请阅读手册:
function user_exists($username){
$sql = "SELECT `id` FROM `users` WHERE `username` = '".$username."'";
$query = mysql_query($sql);
$result = mysql_num_rows($query);
if($result == 1){
// username does already exist
return true;
}else{
// username doesn't exist in the database
return false;
}
}
// initialize PDO
$dbh = new PDO("mysql:host=$hostname;dbname=mysql", $DBusername, $DBpassword);
// Prepare a query
$sql = "SELECT COUNT(*) AS count
FROM users
WHERE username = ?
LIMIT 1";
$statement = $dbh->prepare($sql);
// execute the query
$statement->execute(array($username));
// retrieve the first row
$row = $statement->fetch();
if ($row['count']) echo 'The user exists';
else echo 'The user does not exist';