在我的PHP脚本中,我试图在MySQL语句中使用变量名作为表名,但是当我使用变量作为表名时,如果没有使用`并且表示不正确的表名',则会给出语法错误'当'使用时。代码附在
下面function toQuery($tblName){
$t = "testtitle";
$art = "testarticle";
$auth = "testauthor";
return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)";
}
mysql_connect("localhost","testuser","pass123");
mysql_query("Use `test_schema`");
if(mysql_query(toQuery("test_table"))){
echo "Query: ".toQuery("test_table")." was run.";
}else{
echo "Query: ".toQuery("test_table")." was not run. ".mysql_error();
}
当我使用变量$ tblName变量时,它回显一个相同的查询,如果我只是将test_table直接放在返回的查询中,但是查询中带有变量的那个执行正确。
答案 0 :(得分:1)
你不使用mysql_select_db()。试试这个:
function toQuery($tblName){
$t = "testtitle";
$art = "testarticle";
$auth = "testauthor";
return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)";
}
mysql_connect("localhost","testuser","pass123");
mysql_select_db('dbname');
mysql_query("Use `test_schema`");
if(mysql_query(toQuery("test_table"))){
echo "Query: ".toQuery("test_table")." was run.";
}else{
echo "Query: ".toQuery("test_table")." was not run. ".mysql_error();
}
将您的数据库名称替换为dbname
答案 1 :(得分:0)
我认为您正在选择函数外部的数据库。可能是因为可变的可访问性。
尝试将行mysql_query("Use
test_schema ");
放入函数中。
function toQuery($tblName){
$t = "testtitle";
$art = "testarticle";
$auth = "testauthor";
mysql_query("Use `test_schema`");
return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)";
}