я пишу этот код для запроса
$tableQuery_comment = <<<query
CREATE TABLE IF NOT EXISTS `?comment` (
`cmt_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cmt_obj_id` bigint(20) NOT NULL DEFAULT '0',
`cmt_author_name` tinytext NOT NULL,
`cmt_author_email` varchar(100) NOT NULL DEFAULT '',
`cmt_author_url` varchar(200) NOT NULL DEFAULT '',
`cmt_author_ip` varchar(100) NOT NULL DEFAULT '',
`cmt_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`cmt_content` text NOT NULL,
`cmt_approve` varchar(20) NOT NULL DEFAULT 'yes',
`cmt_agent` varchar(255) NOT NULL DEFAULT '',
`cmt_parent` bigint(20) NOT NULL DEFAULT '0',
`user_id` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`cmt_id`),
KEY `cmt_obj_id` (`cmt_obj_id`),
KEY `cmt_parent` (`cmt_parent`),
KEY `user_id` (`user_id`)
)
query;
и используйте mysqli для подключения и выполнения моего запроса с привязкой значения в первой строке моего запроса.
$con = new mysqli($dbHost, $dbUser, $dbPass, $dbName);
$exe = $con->prepare($tableQuery_comment);
$exe->bind_param(1, $tablePrefix);
$exe->execute();
и получить ошибку в этой строке
$exe->bind_param(1, $tablePrefix);
Ошибка :
mysqli_stmt::bind_param(): количество переменных не соответствует количеству параметров в подготовленном операторе
я пытаюсь связать параметр :name
, как этот код (при использовании этого оператора измените? подпишите на: tablePrefix)
$exe->bind_param(':tablePrefix', $tablePrefix);
и этот код
$exe->bind_param('s', $tablePrefix);
но получить и получить снова ту же ошибку
что мне делать, чтобы связать параметр в heredoc с mysqli?
mysqli
не поддерживает именованные параметры. Вы путаетеmysqli
сPDO
. - person Barmar   schedule 28.01.2014:name
, в примере mysqli используется?
, а не?name
. - person Barmar   schedule 28.01.2014