我有这段代码:
$pegaDados = mysql_query("SELECT * FROM curso WHERE cpf='$cpf'");
if(mysql_num_rows($pegaDados) > 0){
echo '<script type="text/javascript">alert("CPF já cadastrado em nosso Banco de Dados!");</script>';
}
else{
我想在PDO上进行转换,但我遇到了问题。任何人都可以帮助我吗?
我正在寻找网络上的解决方案,我没有找到它的“最佳”解决方案。查看我的下面的连接文件:
<?php
define( 'MYSQL_HOST', '???' );
define( 'MYSQL_USER', '???' );
define( 'MYSQL_PASSWORD', '???' );
define( 'MYSQL_DB_NAME', '???' );
try
{
$PDO = new PDO( 'mysql:host=' . MYSQL_HOST . ';dbname=' . MYSQL_DB_NAME, MYSQL_USER, MYSQL_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
}
catch ( PDOException $e )
{
echo 'Erro ao conectar com o MySQL: ' . $e->getMessage();
}
?>
答案 0 :(得分:1)
某些带PDO的数据库驱动程序没有自然行计数功能(rowCount()
is only for INSERT, UPDATE or DELETE queries),因此您必须使用其他方法。这是我使用的(编辑:基于OP信息的更新连接)
$sql = 'select * from table';
$data = $PDO->query($sql);
$rows = $data->fetchAll();
$num_rows = count($rows);
然后你可以测试:
if($num_rows > 0){
// your code here
}
编辑根据OP的新信息更新了代码:
$sql = "SELECT * FROM curso WHERE cpf = :cpf";
$stmt = $PDO->prepare( $sql );
$stmt->bindParam( ':cpf', $cpf );
$result = $stmt->execute();
$rows = $result->fetchAll();
$num_rows = count($rows);
答案 1 :(得分:-1)
我刚刚将:cpf
变量更改为$cpf
,并且有效!
<?php
require '../conexao.php';
$nome = addslashes ($_POST['nome']);
$foto = addslashes ($_POST['foto']);
$cpf = addslashes ($_POST['cpf']);
$rg = addslashes ($_POST['rg']);
$email = addslashes ($_POST['email']);
$telefone = addslashes ($_POST['telefone']);
$endereco = addslashes ($_POST['endereco']);
$bairro = addslashes ($_POST['bairro']);
$cidade = addslashes ($_POST['cidade']);
$estado = addslashes ($_POST['estado']);
$observacoes = addslashes ($_POST['observacoes']);
$curso = addslashes ($_POST['curso']);
$newquery = "SELECT * FROM curso WHERE cpf = $cpf";
$data = $PDO->query($newquery);
$rows = $data->fetchAll();
$num_rows = count($rows);
if($num_rows > 0){
echo '<script type="text/javascript">alert("CPF já cadastrado em nossa base de dados!");</script>';
}
else{
$sql = "INSERT INTO curso SET foto = :foto, nome = :nome, email = :email, cpf = :cpf, rg = :rg, telefone = :telefone, endereco = :endereco, bairro = :bairro, cidade = :cidade, estado = :estado, observacoes = :observacoes, curso = :curso";
$stmt = $PDO->prepare( $sql );
$stmt->bindParam( ':foto', $foto );
$stmt->bindParam( ':nome', $nome );
$stmt->bindParam( ':email', $email );
$stmt->bindParam( ':cpf', $cpf );
$stmt->bindParam( ':rg', $rg );
$stmt->bindParam( ':telefone', $telefone );
$stmt->bindParam( ':endereco', $endereco );
$stmt->bindParam( ':bairro', $bairro );
$stmt->bindParam( ':cidade', $cidade );
$stmt->bindParam( ':estado', $estado );
$stmt->bindParam( ':observacoes', $observacoes );
$stmt->bindParam( ':curso', $curso );
$result = $stmt->execute();
echo '<script type="text/javascript">alert("Matrícula realizada com sucesso!");</script>';
echo "<script>window.location = 'https://pag.ae/bck57zw';</script>";
}
&GT;
答案 2 :(得分:-2)
你应该尝试这个
$sql = "SELECT * FROM curso WHERE cpf='$cpf'";
$pegaDados = $con->prepare($sql);
$pegaDados->execute();
if($pegaDados->rowCount() > 0){
echo '<script type="text/javascript">alert("CPF já cadastrado em nosso Banco de Dados!");</script>';
}
$ con是您的数据库连接。