gpt4 book ai didi

php 没有正确创建 mysql 列

转载 作者:可可西里 更新时间:2023-11-01 08:36:13 26 4
gpt4 key购买 nike

我正在尝试使用 CodeIgniter PHP 框架在 MySQL 中动态创建表:

if($colname != ''){
$str = "CREATE TABLE IF NOT EXISTS $colname (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), site_id INT NOT NULL, name BLOB NOT NULL)ENGINE=INNOBD;";
$query = $this->db->query($str);

当我从 MySQL 命令提示符执行它时,它完美地创建了表。但是,如果它是通过 CodeIgniter 完成的,我会收到以下错误:

<body>
<div id="container">
<h1>A Database Error Occurred</h1>
<p>Error Number: 1064</p><p>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''tc 11' (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), site_id INT NOT NULL, ' at line 1</p><p>CREATE TABLE IF NOT EXISTS 'tc 11' (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), site_id INT NOT NULL, name BLOB NOT NULL)ENGINE=INNOBD;</p>

这是怎么回事?谢谢

最佳答案

您正在使用引号 ' 而不是反引号 `` ` 来包围您的表名。 MySQL 使用 backticks to escape names .

你应该改变$colname的值

'tc 11'

对此:

`tc 11`

你可以这样做:

$colname = str_replace("'", "`", $colname);

证实这一点的其他资源:

(对代码块感到抱歉;内联代码中的反引号存在问题)

关于php 没有正确创建 mysql 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com