Предполагается, что тип данных поля varchar. Когда я добавляю в него целое число, он публикует и добавляет его в виде строки,
, и предполагает, что тип данных поля равен int. Когда я добавляю в него varchar, онбудет публиковать и добавлять его в базу данных как «0»,
Так есть ли в любом случае, чтобы проверить, совпадает ли тип данных с тем, что находится в базе данных?
Все, что я хочу проверить, это varchar, целое и логическое
Спасибо
//get column name
try {
$q = $conn->prepare("DESCRIBE subscriber");
$q->execute();
$tableField = $q->fetchAll(PDO::FETCH_COLUMN);
}
catch(PDOException $e)
{
die ($e->getMessage()."<a href='view.php' onClick='window.location.reload()'> Back</a>");
}
foreach ($tableField as $set)
{$counter=0;
//if ($set!='Email')
$subCol[]=$set; //column name
$noOfColumn[]=$counter; //how much column
}
//get column datatype
foreach ($noOfColumn as $set)
{
try{
$sql ='SELECT s.*
FROM subscriber s,list_sub ls
where ls.ListID = ?
AND s.SubID=ls.SubID
';
$select = $DB->query($sql);
$meta = $select->getColumnMeta($set);
$dataType[]=$meta[$subCol['$set']]; //an arrary of datatype
}
catch(PDOException $e)
{
die ($e->getMessage().'<a href="viewAll.php"> Back</a>');
}
}
//assume input1='int' , input2='varchar' ,input3='bool'
//column name in database = input box name
foreach ($dataType as $compare)
{if($compare[$subCol['FieldName']]==gettype(mixed $input1))
echo "ok, same type";
else
echo "no, not same type";
}