php - "insert into $schoolname (' cat ',' ...) $_POST "if statement "没有将值传递到 $schoolname 表中

标签 php mysql variables post insert

我在“插入”mysql 命令中读取 $schoolname 时遇到问题。

我只是在为一个跨越几所学校的粉丝俱乐部创建一个小东西。所以我为每所学校创建了一个不同的数据库表。每个学校都有一个唯一的id,表名与之对应。代码如下。请帮忙。那么,问题区域是插入部分。

"插入 $schoolname ('cat','...) 出于某种原因,$schoolname 不符合 $_POST if 语句

如果我指定一个硬编码的表名,mysql 命令“insert into ...”会传递值,但如果我指定变量($schoolname)代替表名,它不会传递值。我需要指定变量,因为有许多学校,每个学校都有自己的表格。

    <?php
    require_once('include.php');
    include('imageupload.php');

$schoolid='';
if(isset($_GET['schoolid']) && isset($_GET['schoolid']) != '')
{
    $schoolid .= 'and id ='.$_GET['schoolid'];
}

$sqlschoolid = "select * from schools where status = 'Active' ".$schoolid;
$resschoolid = $obj->sql_query($sqlschoolid);
$school = $resschoolid[0];

$schoolname = $school['parameter'];
$schoolid2 = $school['id'];

    if($_POST)


{


    (isset($_POST['pr']) && $_POST['pr'] != "") ? $price=mysql_real_escape_string($_POST['pr']) :  $pr="" ;

    $sqlclass = "insert into $schoolname(`category`,`type`,`price`,`title`,`description`,`weburl`,`image`,`email`,`phone`,`address`,`city`,`state`,`zip`,`postdate`,`sponser`,`status`) 
    values('".$_POST['subcategory']."','".$_POST['type']."','".$pr."','".mysql_real_escape_string($_POST['title'])."','".mysql_real_escape_string($_POST['description'])."','".mysql_real_escape_string($_POST['weburl'])."','".$imagename."','".mysql_real_escape_string($_POST['email'])."','".mysql_real_escape_string($_POST['phone'])."','".mysql_real_escape_string($_POST['address'])."','".mysql_real_escape_string($_POST['city'])."','".mysql_real_escape_string($_POST['state'])."','".mysql_real_escape_string($_POST['zip'])."','".date('Y-m-d H:i:s')."','0','Active')";


    }

    ?>

最佳答案

由于您没有具体说明您遇到的问题,这只是一个猜测:

if(isset($_GET['schoolid']) && isset($_GET['schoolid']) != '')

不应该是

if(isset($_GET['schoolid']) && $_GET['schoolid'] != '')

作为旁注,请考虑如果用户在 schoolid 中输入以下内容会发生什么:

0; delete from schools

这称为 SQL 注入(inject),您应该使用“绑定(bind)变量”而不是通过连接字符串来构建查询。

关于php - "insert into $schoolname (' cat ',' ...) $_POST "if statement "没有将值传递到 $schoolname 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8889996/

相关文章:

PHP 从外部服务器读取文件

php - Facebook即时游戏玩家签名验证失败

python - Python 中的持久 MySQL 连接

php - Mysql 连接 - 通过 IP 连接比通过域连接更快吗?

php - 使用 PHP if 语句添加 CSS?

javascript - 如何使用 AJAX、PHP 和 MySQL 发送个人消息?

javascript - 如何将 Javascript 变量保存为服务器端变量以便每个人都可以看到它

python - 变量和参数有什么区别

R 使用变量的值作为数据框列名

php - Str_replace 用于多个项目