MySQL中创建表 - PHP

问题得到这个工作:MySQL中创建表 - PHP

我把这个查询字符串(作为变量):

"query" => 

"CREATE TABLE

users(

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

date_created DATETIME,

last_active DATETIME,

last_logged_in DATETIME,

first_name VARCHAR(255),

last_name VARCHAR(255),

email VARCHAR(255),

password VARCHAR(255),

permissions INT,

status SMALLINT

)"

到这个循环:

foreach($queryStrings as $queryString) 

{

$query = Database::Query($queryString[ "query" ]);

if($query)

{

echo "Database table " . $queryString[ "name" ] . " successfully created<br />";

}

else

{

echo "Database table " . $queryString[ "name" ] . " failed to create<br />";

}

}

数据库:查询是在这里:

public static function Query($query) 

{

$query = self::$mysqli->real_escape_string(trim($query));

if ($query = self::$mysqli->prepare($query))

{

$query->execute();

$DatabaseQuery = new DatabaseQuery();

$DatabaseQuery->result = $query->get_result();

$DatabaseQuery->mysql_num_rows = $query->num_rows();

$query->close();

return $DatabaseQuery;

}

echo false;

}

它失败闯过:

if ($query = self::$mysqli->prepare($query)) 

正在准备的字符串是在这里:

CREATE TABLE \r\n users(\r\n id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,\r\n date_created DATETIME, \r\n last_active DATETIME,\r\n last_logged_in DATETIME,\r\n first_name VARCHAR(255),\r\n last_name VARCHAR(255),\r\n email VARCHAR(255), \r\n password VARCHAR(255), \r\n permissions INT, \r\n status SMALLINT\r\n) 

回答:

你应该使用str_replace

$string = str_replace(array("\n", "\r"), '', $string); 

删除查询字符串的\r\n或者你可以做与preg_replace相同:

$string = preg_replace('/[\r\n]/', '', $string); 

回答:

当然,删除换行符是错误的答案。

这是整个$query = self::$mysqli->real_escape_string(trim($query));行应该被删除,因为它不应该在整个查询中使用一般和实际上没有用于像这样准备的查询。

以上是 MySQL中创建表 - PHP 的全部内容, 来源链接: utcz.com/qa/259230.html

回到顶部