【发布时间】:2018-11-08 15:00:03
【问题描述】:
我正在尝试在 PHP 环境下对“插入表值”语句使用 if 语句,并使用 $_post[] 作为变量来为字段更新进行复杂的 SQL 查询。脚本在下面。它主要是关于将带有NULL的字段更新为空字符串。似乎不适合我。有人可以帮帮我吗?
$strSQL = "INSERT INTO SR ";
$strSQL .="(DESC,ATTACH) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["txtDesc"]."','".((SELECT $_POST["txtAttach"] FROM SR WHERE $_POST["txtAttach"] is NULL)," ")."')";
【问题讨论】:
-
您收到什么错误?目前尚不清楚您想要什么。你想把
if放在哪里?请使用此信息和错误更新您的问题。 -
错误在这里:解析错误:语法错误,C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\submit\php_oracle_insert2 中的意外'$_POST' (T_VARIABLE) .php 在第 46 行
-
请,无关的,但查找 PDO 和绑定参数。直接从用户输入生成 SQL 很危险。
-
您的 select 语句似乎没有正确地作为字符串传递给您的 strSQL 变量...
-
@Sunnie 它会打开您对 SQL 注入的查询。例如,没有什么可以阻止用户发布
<script type="text/javascript">function sendPersonalDataToMaliciousServier() { }</script>,那么当它保存到您的数据库时,每当检索到记录并在浏览器中运行时,javascript 也会运行。这是我可以在评论中写的最基本的例子。见:stackoverflow.com/questions/60174/…