继承我的创建查询,工作得很好......
$pages = "CREATE TABLE pages (id int NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(255), content TEXT, description VARCHAR(255), banner VARCHAR(255), headercol INT, headerdisplay INT, type INT, headersort INT, category INT, footercol INT, footerdisplay INT, footersort INT)";
mysqli_query($dbc, $pages) or die('Error querying database5');
继承我的插入查询,返回错误......
$jewelry = "INSERT INTO pages (name, description, banner, headerdisplay, type, headersort, category) VALUES ('Jewelry', 'A collection of vintage and contemporary jewelry', 'uploads/banners/jewelry.png', 1, 2, 1, 0)";
mysqli_query($dbc, $jewelry) or die('Error inserting jewelry');
答案 0 :(得分:3)
您在第二列值处有一个未转义的撇号用于描述。
你应该用反斜杠来逃避它,例如:\'
。
如果要从变量插入,则应创建一个包含mysqli_prepare
的预准备语句,并将参数绑定到mysqli_stmt_bind_param
。
OOP方式:
$stmt = $mysqli->prepare("INSERT INTO pages (name, description, banner, headerdisplay, type, headersort, category) VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param($name, $description, $banner, $headerDisplay, $type, $headerSort, $category);
或者您可以使用PDO或其他数据库抽象层。
答案 1 :(得分:0)
将数据输入数据库并从数据库输出时使用这两个功能。
/****************************************/
/* Encode special chars */
/* */
/****************************************/
function DBin($string)
{
return trim(htmlspecialchars($string,ENT_QUOTES));
}
/****************************************/
/* Decode special chars */
/* */
/****************************************/
function DBout($string)
{
$string = trim($string);
return htmlspecialchars_decode($string,ENT_QUOTES);
}