在“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/