这个问题已经在这里有了答案 :
7年前关闭。
可能重复:
PHP PDO语句可以接受表名称作为参数吗?
我班上有个正在遇到麻烦的函数。这里的功能
function insert($table,$column = array(),$value = array())
{
$array1 = implode(",", $column);
$array2 = implode(",", $value);
try
{
$sql = $this->connect->prepare("INSERT INTO :table (:date1) VALUES (:date2)");
$sql->bindParam(':table',$table, PDO::PARAM_STR);
$sql->bindParam(':data1',$array1, PDO::PARAM_STR);
$sql->bindParam(':data2',$array2, PDO::PARAM_STR);
$sql->execute();
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
我用以下函数调用该函数:
-> insert('coupons',array('categorie','name','link','code','id'),array('test11','test','test','test','NULL'));
我得到的错误是:
警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE
[HY093]:无效的参数编号:在第46行的C:\ xampp \ htdocs \ MYFRAMEWORK \ lib \
database.class.php中未定义参数
第46行是:
$sql->execute();
所以现在我真的看不出问题在哪里。有指针吗?
您误解了绑定的使用。您不能将表和列名称与PDO绑定。您绑定数据以将INTO插入这些列。您需要使用字符串操作构造SQL以包括表名和列。
我已将您的$ column和$ value重命名为$ column_array,$ value_array以清楚说明它们是什么,并假定每个都是简单数组:
$column_array = array('column1', 'column2', ...) etc.
$placeholders = array_map(function($col) { return ":$col"; }, $column_array);
$bindvalues = array_combine($placeholders , $value_array);
$ placeholders现在看起来像这样:
$placeholders = array(
':column1',
':column2',
...
);
$ bindvalues现在看起来像这样:
$bindvalues = array(
':column1'=>'value1',
':column2'=>'value2',
...
);
$sql = $this->connect->prepare("INSERT INTO $table (" .implode(",", $column_array) .") VALUES (". implode(",", $placeholders) . ")";
这将为您准备以下形式的声明:
$sql = INSERT INTO table_name (column1, column2, ...) VALUES (:column1, :column2, ...)
然后,您可以执行准备好的语句并将$ values作为参数传递。
$sql->execute($bindValues);
对社区来说是非常新的。我想知道是否有人能解释为什么我上次的println会产生编译错误?非常感谢。
我试图在虚拟机上安装Laravel项目的所有包。我已经安装了一切,但在作曲家安装操作显示错误MCrypt PHP Exstension必需。 但是Mcrypt已安装!我也做过这样的动作: 并在mcrypt.inimcrypt.sophp5路径。那么现在包含mcrypt.ini文件的是什么?只是这段文字: exstension=/usr/lib/20131226/mcrypt.so 还使用了:和而没
我收到以下错误 索引-AFE1F71068EDED。js:1混合内容:页面位于'https://currency-rho.vercel.app/'已通过HTTPS加载,但请求了不安全的资源'http://api.currencylayer.com/live?access_key=138ca01354c449d7741ab9dbca4f4252'. 此请求已被阻止;内容必须通过HTTPS提供。 我假
我的HTML表单代码; 在我的main-menu.html文件中,我试图调用变量; 我应该补充一下,它目前正在工作,但我知道这可能不是正确的方式。我很感激任何帮助。
本文向大家介绍Android Listview点赞问题关于图片重复问题,包括了Android Listview点赞问题关于图片重复问题的使用技巧和注意事项,需要的朋友参考一下 《最近做一个小功能遇到这么一个问题,listview 与 baseadapter结合使用,关于点赞的的时候 图片重复问题,比如:我在第1个item 点赞然后 心型换成了红色,但是以后每隔几个item就会出现一个红色的心,响应
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: UTF-8一直到 我正在其他人已经开发的网站上开发一些新功能。 我的字符集有问题。 我看到该数据库在utf8中有一些表,在latin1中有一些表 因此,我正在尝试转换UTF8中的所有表。 我为一个表做了(现在该表的字段也是utf8),但是没有成功。 我正在使用普通的mysql连接。我必须放置任何配置以说它必须与utf8连接到数据