问题是:这个脚本在localhost上完美运行,但是当我上传它时,只是停止工作,并且没有错误显示:
<?
$sessid = $_SESSION['id_usuario'];
if (!$mysqli->query("INSERT INTO `cervezam_sgcm`.`orders` (`id`, `userid`, `cid`, `tipou`, `cantidad`, `factura`, `producto`, `lote`, `notas`, `cprod`, `pbase`, `cenvio`, `fecha`, `fechae`, `fechap`, `status`, `cobro`, `ip`) VALUES
(NULL,
'.mysql_real_escape_string($sessid).',
'.mysql_real_escape_string($cid).',
'.mysql_real_escape_string($tipou).',
'.mysql_real_escape_string($cantidad).',
'.mysql_real_escape_string($factura).',
'.mysql_real_escape_string($producto).',
'.mysql_real_escape_string($numlot).',
'.mysql_real_escape_string($notas).',
'.mysql_real_escape_string($cprod).',
'.mysql_real_escape_string($pbase).',
'.mysql_real_escape_string($cenvio).',
'.mysql_real_escape_string($fecha).',
'',
'',
'.mysql_real_escape_string($status).',
'.mysql_real_escape_string($cobro).',
'.mysql_real_escape_string($ip).');")) {
echo "Falló la Insersión de Datos: (" . $mysqli->errno . ") " . $mysqli->error;
} echo"Datos Insertados";
尝试将值插入表格时,问题就开始了。
我只是尝试了所有:有或没有mysql:real_escape,在变量中使用{和},删除并添加带有变量Ej的“”。 '“。$ variable。”',所有!!仍然没有工作。
我刚试过这个php.net示例:
$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);
$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;
/* ejecuta sentencias prepradas */
$stmt->execute();
并没有发生任何事情,我的脚本不想将数据插入相应的表中。
我已启用错误报告
error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1);
但页面只是变为白色而没有任何警告或错误消息。
如果mysql用户名具有INSERT权限,我也很清楚,是的,我有权将数据插入表中。
请道歉我的英语,谢谢你的帮助。
解决了这个问题:
if (!$mysqli->query("INSERT INTO `cervezam_sgcm`.`orders` (`id`, `userid`, `cid`, `tipou`, `cantidad`, `factura`, `producto`, `lote`, `notas`, `cprod`, `pbase`, `cenvio`, `fecha`, `fechae`, `fechap`, `status`, `cobro`, `ip`) VALUES
(NULL,
'".$_SESSION['id_usuario']."',
'".$cid."',
'".$tipou."',
'".$cantidad."',
'".$factura."',
'".$producto."',
'".$numlot."',
'".$notas."',
'".$cprod."',
'".$pbase."',
'".$cenvio."',
'".$fecha."',
'',
'',
'".$status."',
'".$cobro."',
'".$ip."');")) {
echo "Falló la Insersión de Datos: (" . $mysqli->errno . ") " . $mysqli->error;
} echo"Datos Insertados";
答案 0 :(得分:1)
由于语法规则,您没有收到任何错误消息,请参阅<?= $test ?> is equivalent to <?php echo $test ?>.
表示只要使用<? php and ?>
<?php
$sessid = $_SESSION['id_usuario'];
if (!$mysqli->query("INSERT INTO `cervezam_sgcm`.`orders` (`id`, `userid`, `cid`, `tipou`, `cantidad`, `factura`, `producto`, `lote`, `notas`, `cprod`, `pbase`, `cenvio`, `fecha`, `fechae`, `fechap`, `status`, `cobro`, `ip`) VALUES
(NULL,
'.mysql_real_escape_string($sessid).',
'.mysql_real_escape_string($cid).',
'.mysql_real_escape_string($tipou).',
'.mysql_real_escape_string($cantidad).',
'.mysql_real_escape_string($factura).',
'.mysql_real_escape_string($producto).',
'.mysql_real_escape_string($numlot).',
'.mysql_real_escape_string($notas).',
'.mysql_real_escape_string($cprod).',
'.mysql_real_escape_string($pbase).',
'.mysql_real_escape_string($cenvio).',
'.mysql_real_escape_string($fecha).',
'',
'',
'.mysql_real_escape_string($status).',
'.mysql_real_escape_string($cobro).',
'.mysql_real_escape_string($ip).');")) {
echo "Falló la Insersión de Datos: (" . $mysqli->errno . ") " . $mysqli->error;
} echo"Datos Insertados";
?>
答案 1 :(得分:0)
我对PHP很新,但我注意到你使用的是mysql和mysqli的混合体。你应该在整个代码中使用mysqli。
正确的语法是&#34; mysqli_real_escape_string($ databaseConnection,$ sessid);&#34;
希望有所帮助。