ajax を使用してユーザー名を検出するだけです。yes または no がポップアップしない理由はわかりません。代わりに、次のものが表示されます
データベースにもあります
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title> <script type="text/javascript"> function ajax(url,funsucc){ var oAjax=new XMLHttpRequest(); oAjax.open('GET',url,true); oAjax.send(); oAjax.onreadystatechange=function(){ if(oAjax.readyState==4){ if(oAjax.status==200){ funsucc(oAjax.responseText); } }}} </script> <script type="text/javascript"> window.onload=function(){ var oTxt=document.getElementById('txt1'); oTxt.onblur=function(){ ajax("chaxun.php?id="+oTxt.value,function(str){ alert(str); }); } } </script></head><body><form> <input type="text" id="txt1" name="user"></form></body></html>
<?php$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");$id=$_GET["id"];$stmt=$pdo->prepare("select * from user WHERE username=?");$stmt->execute(array($id));$res=$stmt->fetchall();$result=mysql_affected_row($res);if($result==-1){ echo "yes";}else{ echo "no";}?>
I know that ected_row の記述が間違っています。mysql_affected_rows に変更しましたが、それでも変わりません。動作しません
xdebug からのエラーレポートが表示されました
chaxun.php 行 7 $result= mysql_affected_row($res); は未定義関数です
正しい書き方は次のとおりです: mysql_affected_row s
ただし、接続には PDO を使用しますmysql_affected_rows を使用してデータベースを操作するのは間違いです
mysql 拡張機能を使用してデータベースを操作する場合でも、mysql_affected_rows は select コマンドに対しても無効です
そのため $result=mysql_affected_row($res); は削除する必要があります
if( $result==-1){
if(! $res){ に変更されました
$stmt-> データが見つからない場合、$res は空の配列を返します。ポップアップは xdebug のエラーレポートです。
chaxun.php $result=mysql_affected_row($res); の行 7 にある mysql_affected_row が未定義の関数であることを指摘しています
PDO を使用してデータベースに接続し、操作します。mysql_affected_rows を使用するのは間違いです
mysql 拡張機能を使用してデータベースを操作する場合でも、mysql_affected_rows は select コマンドでは有効ではありません
ので、 $result=mysql_affected_row($res); とする必要があります。削除されました
if($result==-1){
は
if(! $res){ に変更されました
$stmt->fetchall() は配列を返します (データが見つからない場合、$res は空の配列です)
司会者さん、私の基本的なスキルが低すぎるので、もう少し詳しく見てみる必要があります。