在php中将数据从数组插入mysql
我有一个数据库在php中将数据从数组插入mysql,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,我有一个数据库test,表名为table,有两列user和email。 我下面的代码有什么问题?我无法将数组$u添加到我的数据库中 <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $use
test
,表名为table
,有两列user
和email
。
我下面的代码有什么问题?我无法将数组$u
添加到我的数据库中
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$user = "safwan";
$email = "esafw@jdjd.com";
$u = array ( user => $user,
email => $email
);
$q = "INSERT INTO table VALUES ($u)";
mysql_query($q) OR die(mysql_error());
mysql_close($con);
?>
请查看MySQL数据类型 您必须在数组上循环并单独添加元素。我还建议使用诸如MySQLi或PDOs之类的其他工具来实现安全性 事实上,使用PDO可以“添加阵列”(因为它的设计方式)
我不打算讲太多细节,因为你真的应该学习一种新技术。准备好的语句和SQL注入之类的东西更安全。请查看MySQL数据类型 您必须在数组上循环并单独添加元素。我还建议使用诸如MySQLi或PDOs之类的其他工具来实现安全性 事实上,使用PDO可以“添加阵列”(因为它的设计方式)
我不打算讲太多细节,因为你真的应该学习一种新技术。准备好的语句和SQL注入之类的东西更安全。您有几个问题:
您有几个问题:
您正在尝试将数组直接插入数据库。您需要单独访问这些值
您应该在字符串周围使用引号,这包括当字符串是数组中的键时
您需要了解SQL注入
>p>从以后,您应该考虑迁移远离MySQL函数。
table是一个MySQL关键字,如果它实际上是表名,则需要反勾号
$user,
'email'=>$email
);
$q=“插入到表(用户、电子邮件)值(“.mysql\u real\u escape\u string($u['user'])。”,“.mysql\u real\u escape\u string($u['email'])。”)”;
mysql_query($q)或die(mysql_error());
mysql_close($con);
?>
或:
尝试回显您的查询。它将显示为:
"INSERT INTO table VALUES (array)".
当然是你不想要的
您可以通过在数组中循环或直接使用以下命令来构造插入查询:
INSERT INTO table VALUES ($user, $email)
试着回答你的问题。它将显示为:
"INSERT INTO table VALUES (array)".
当然是你不想要的
您可以通过在数组中循环或直接使用以下命令来构造插入查询:
INSERT INTO table VALUES ($user, $email)
因为。。这是一个数组?同时编辑:停止使用mysql_*函数,改用PDO或mysqli_*函数。(您很容易受到mysql注入的攻击)因为。。这是一个数组?同时编辑:停止使用mysql_*函数,改用PDO或mysqli_*函数。(你很容易受到mysql注入的攻击)4table
是一个MySQL关键字,如果它实际上是表名,则需要反勾号。我已将其添加到不断增长的列表中:)4table
是一个MySQL关键字,如果它实际上是表名,则需要反勾号。我已将其添加到不断增长的列表中:)