由于某种原因,尽管没有错误,但该查询并未提交到数据库!
$listingdesc2 = "'test test test','test test test'";
$category = "apple, banana";
$addlisting = mysql_query("INSERT INTO `directory` (". $category .") VALUES (". $listingdesc2 .")");
我已确保表名和列名正确。我的查询有问题吗?
我认为这与 $listingdesc2
有关,尝试在查询中使用以逗号分隔的变量。
苹果应该在数据库中返回“test test test” 香蕉应该在数据库中返回“测试测试测试”
克里斯,这是我的代码的完整片段,上面是一个非常基本的示例。
$listingdesc = mysql_real_escape_string($_POST['listingdesc']);
$category = $_POST['category']; //this is an array from a multiple selection checklist
$numcat = count($category);
$category = implode(", ",$category);
$listingdesc1 = "'$listingdesc'";
$a = array_fill(0, $numcat, $listingdesc1);
$listingdesc2 = implode(',', $a);
$addlisting = mysql_query("INSERT INTO `directory` (". $category .") VALUES (". $listingdesc2 .")");
然后我回显查询中使用的值,它们如下:
$listingdesc2 = '测试测试测试','测试测试测试'
$category = '苹果、香蕉'
最佳答案
与 string mysql_escape_string ( string $unescaped_string )
你可以转义特殊字符只是为了防止sql注入(inject),顺便说一句我认为你使用 PDO
来自 PHP 的库或 mysqli
而不是mysql
,因为此库已在 PHP >5.4
中弃用。现在是PHP is 5.6
的稳定版本.
关于php - MySQL 查询未提交到数据库,没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37165509/