|
|
|
| Здравствуйте!
Есть код, который в цикле формирует строку запроса MySql, при этом приходится экранировать некоторые переменные, чтобы значения эти переменные приянли чуть позже...
$str.="\$data->sheets[0]['cells'][\$i][$iRow[$h]]"."$iRazdelitel[$h]";
|
когда SQL запрос сформирован, запускается следущий цикл, в котором используется sql запрос, сформированный ранее
$SQLSTR="INSERT INTO `".$SkladNameTable[$IPos]."` (`Art`,`Kod`,`Name`,`Proizv`,`Price`,`Ost`) VALUES('".$string[1]."','".$string[2]."','".$string[3]."','".$string[4]."','".$string[5]."','".$string[6]."');";
|
в переменных $string как раз и содержатся строки с экранированными переменными.
Как сделать так, чтобы в sql запросе экранированные переменные работали не как строки, а как переменные, чтобы принимали значения...
Спасибо!!!! | |
|
|
|
|
|
|
|
для: andrey215
(13.02.2012 в 14:53)
| | Можно, конечно, задействовать функцию eval(), но код быстро становится сложно-отлаживаемым и вообще это считается плохим тоном в программировании. Самый лучший вариант, это подставить значения при помощи функции sprintf() или сформировать запрос какими-то другими средствами. | |
|
|
|