기존 MYSQL 스크립트를 PDO로 변환하려고합니다. MYSQL 스크립트는 작동하지만 PDO 버전은 작동하지 않습니다.MYSQL 스크립트를 PDO로 변환
스크립트의 목표는 테이블 일정에서 특정 UID의 동일한 UID가 해당 cif_stp_indicator의 가장 낮은 알파벳 문자로 선택되는 곳을 선택하는 것입니다.
예를 들어 UID 번호 'Y63553'을 찾으려고합니다. 이 번호에는 두 개의 UID가 있습니다. 하나는 cif_stp_indicator가 'N'이고 하나가 cif_stp_indicator가 'O'인 경우입니다. 난의 cif_stp_indicator로 Y63553을 선택하고자하는 ............ 'N'
그래서 예를 들어 데이터의 STP 표시기
cif_train_uid cif_stp_indicator Other Data
Y63553 N x
Z45789 O x
T78456 O x
Y63553 O x
을 UID를 선택하려면 'N'
MySQL의 아래 스크립트는 달성이
$cif_stp_indicator=null;
$cif_train_uid='Y63553';
$b="SELECT s1.cif_train_uid,s1.cif_stp_indicator,s1.schedule_start_date
FROM schedule s1
LEFT JOIN schedule s2
ON (s1.cif_train_uid=s2.cif_train_uid AND s1.cif_stp_indicator>s2.cif_stp_indicator)
WHERE s2.cif_stp_indicator is NULL AND s1.cif_train_uid='$cif_train_uid' ";
$l=mysqli_query($mysql_link,$b);
if ($l) {
while($berths=mysqli_fetch_array($l,MYSQLI_ASSOC))
{
echo $berths['cif_train_uid'];
echo $berths['cif_stp_indicator'];
}
}
PDO 스크립트 실행 아래하지만 더 결과를 제공하지 않습니다. 그 스크립트의 관련 부분을 제거하여 Y63553의 cif_train_uid를 모두 표시하는 스크립트를 얻을 수 있으므로 NULL 부분이 구성된 방식과 관련 있다고 확신합니다. 이 포럼에서 PDO 스크립트를 사용하여 도움을 얻었으며 지금은 스크립트의 NULL 부분이 작동하지 않는 이유를 이해하려고합니다. 즉 연결 다시 Y63553 및 N
$cif_stp_indicator=null;
$cif_train_uid='Y63553';
$sql="SELECT s1.cif_train_uid,s1.cif_stp_indicator,s1.schedule_start_date
FROM schedule s1
LEFT JOIN schedule s2
ON (s1.cif_train_uid=s2.cif_train_uid AND s1.cif_stp_indicator>s2.cif_stp_indicator)
WHERE s2.cif_stp_indicator is NULL AND s1.cif_train_uid=:s1_cif_train_uid ";
$movedata=$mysql_link->prepare($sql);
$movedata->bindValue(':s1_cif_train_uid',$cif_train_uid, PDO::PARAM_STR);
$movedata->execute();
$array=$movedata->fetchAll();
for($i=0;$i<sizeof($array);$i++){
echo $array[$i]['cif_train_uid'];
echo $array[$i]['cif_stp_indicator'];
}
코드를보고하지
try
{
$mysql_link= new PDO("mysql:host=$servername;dbname=db;charset=utf8",$username,$password);
$mysql_link->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
$mysql_link->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
echo "Connected Success";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
PDO와
감사합니다. Dominique. 그 변화에도 여전히 결과가 나오지 않아요. – user2635961
자세히 보겠습니다. – Dominique
대안을 시도합니다 – user2635961