2017-07-26 14 views
-1

私のphp.Mysql($ sql)の結果は1.Sysumは空であってはなりません。mysql_num_rows($sel) > 0trueです。SQL(mysql)の結果を確認する方法。 PHP

実際には、mycodeは機能しません。私はなぜわかりません。誰が私を助けることができますか?

$conn = new PDO('mysql:host=localhost;port=3306;dbname=hpc' , 'root' , 'Yd'); 
$Name=$_COOKIE['PName']; 
$sql = "select sysnum from hpc where handler='".$Name."' and stat='N';"; 
$sel=$conn->query($sql); 
if(mysql_num_rows($sel) > 0) 
{  
mycode; 
} 
+0

My connは$ conn = new PDO( 'mysql:host = localhost; port = 3306; dbname = hpc'、 'root'、 'Yd')です。 – john

+0

あなたの接続を教えてもらえますか? '$ conn'の中には何がありますか? mysql、mysqli、またはPDOを使用してデータベースに接続しましたか? – Twinfriends

+0

'mysql_ *'関数を使わないでください...これらは非推奨です。そして、あなたのクエリに直接クッキーから何かを解析しないでください。 – Ivar

答えて

-1

配列になると、このように、count機能を使用してアイテムを数えるフェッチ:でも私の前に、あなたのコメントを非常に高速に行った

$Name=$_COOKIE['PName']; 
$sql = "select sysnum from hpc where handler='".$Name."' and stat='N';"; 
$sel = $conn->query($sql)->fetchall(); 
if(count($sel) > 0){  
mycode; 
} 
+0

SQLをコピーしないでください答えとしての脆弱性...将来のユーザーは単純にコードにコードをコピーすることができます。 – Ivar

+0

$ conn-> query($ sql) - > fetchall();うまく動作します。ありがとうございます! – john

1

ああ少年:P

をそうし、答えは簡単です。PDO接続ではmysql_num_rowsを使用できません。それは2つの異なるドライバーです。あなたのようなことは、あなた自身の鍵であなたの妻の車を始動しようとします。主に、どちらもキーですが、どの車でも動作しません。

これはあなたの場合も同じです。 mysql_num_rowsは、OUTDATED mysqlドライバに由来します。 (mysql_ *はまったく使用しないでください。PHP7ではサポートされなくなり、廃止予定です)。 PDOでそれを行うには正しい方法ですが、コードを少し修正する必要があります。

$Name=$_COOKIE['PName']; 
$sql = "select count(sysnum) from hpc where handler='".$Name."' and stat='N';"; 
$sel=$conn->query($sql); 

$rows = $sel->rowCount(); 

echo $rows; 

希望があれば、私に知らせてください。 PDOでrowCountを実行しようとした最後に、いくつか問題があったことは分かっています。

重要 - 危険:

また、私は本当にhttp://bobby-tables.comを見て、およそSQLインジェクション何かを学ぶことをお勧めします。あなたのコードは実際にはまったく保存されておらず、あなたのデータベースは簡単にハックすることができます。 PDOを使用しているので、の準備文を使用することを止めるものはありません。

私はあなたを助けることができます。他にご質問がある場合や動作しないものがある場合は、お知らせください。

関連する問題