J'ai cette fonction pour préparer la variable à utiliser dans une requête SQL:Comment détecter le remplissage sur un nombre entier et le traiter comme une chaîne?
function sqlize($mInput)
{
if (!isset($mInput))
$mInput = "null";
elseif (strtolower($mInput) == "null") { }
elseif (is_numeric($mInput)) { }
elseif (is_string($mInput))
{
$mInput = trim($mInput);
$mInput = addslashes($mInput);
$mInput = '"' . $mInput . '"';
}
else
$mInput = "null";
return $mInput;
}
J'ai une chaîne « 0004 », qui va dans un « champ varchar », est cought par is_numeric
, et est sauvé "4" et non "0004". Existe-t-il un moyen de détecter le remplissage et de le traiter comme une chaîne?
Merci! devrait être quelque chose comme
function sqlize($mInput)
{
switch(TRUE)
{
default: break;
case (!isset($mInput)): $mInput = "null"; break;
case (strtolower($mInput) == "null"): break;
case (is_numeric($mInput)):
if ((string) intval($mInput) === (string) $mInput)
break;
case (is_string($mInput)):
$mInput = trim($mInput);
#v2
$mInput = $_SESSION['oCore']->oDatabase->sanatize($mInput);
// ADOdb's oDb->qstr();
# v1
#$mInput = addslashes($mInput);
#$mInput = '"' . $mInput . '"';
break;
}
return $mInput;
}
Remarque: N'utilisez pas les addslashes pour échapper des données. Si vous utilisez les fonctions mysql_ *, utilisez mysql_real_escape_string. – webbiedave
cela pourrait-il fonctionner avec ADOdb? – Sirber
adodb '$ db-> qstr()' devrait le faire. – Sirber