在“insert in to”mysqlcommand中,我无法读取$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注入,您应该使用“绑定变量”,而不是通过连接字符串来构建查询。

关于php - “插入$ schoolname('cat','...)。$ _POST”,如果语句“未将值传递到$ schoolname表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8889996/

10-08 20:46