Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql无法进行查询_Php_Mysql_Mysqli - Fatal编程技术网

Php Mysql无法进行查询

Php Mysql无法进行查询,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试使用PHP将一些数据放入我的MySQL表中。我已经从数据库中将一些数据检索到变量中。我们可以说: $data = "Some variable"; 但问题是在 一些变量我有这样的数据 $data = $row['some data']; 我不知道我正在抓取什么,可能是某个时间,可能是超链接,可能是某个时间,可能只是一些垃圾数据。当我尝试将数据放入MySQL表时,问题就出现了 我试图重复这个问题,假设这就是问题所在 $query = "INSERT into table VALUES

我正在尝试使用PHP将一些数据放入我的MySQL表中。我已经从数据库中将一些数据检索到变量中。我们可以说:

$data = "Some variable";
但问题是在
一些变量
我有这样的数据

$data = $row['some data'];
我不知道我正在抓取什么,可能是某个时间,可能是超链接,可能是某个时间,可能只是一些垃圾数据。当我尝试将数据放入MySQL表时,问题就出现了

我试图重复这个问题,假设这就是问题所在

$query = "INSERT into table VALUES(0, '$data')";
结果是:

INSERT INTO table VALUES(0,'Donatted book:'25 ways to improve life');
这本书后面有一段引文。但是我不能改变它,因为这里的数据来自另一个数据库。如何使此insert命令工作

下面是我的代码是如何工作的

<?php
    $query = "SELECT*from table WHERE id=$content_id";
    $data = mysqli_query($dbc, $query);
    $row = mysqli_fetch_array($data);
    $data = $row['col'];

    $query2 = "INSERT INTO table VALUES(0, $data)";
    mysqli_query($query2);
?>

您应该使用

$dbtype=“mysql”;
$dbhost=“localhost”;
$dbname=“数据库名称”;
$dbuser=“username”;
$dbpass=“password”;
//创建PDO连接
$conn=newpdo(“mysql:host=$dbhost;dbname=$dbname”,$dbuser,$dbpass);
//执行INSERT语句
$sql=“插入表值(:value1,:value2)”;
$q=$conn->prepare($sql);
//此值由PDO转义
$q->execute([':value1'=>$data['some\u data\u 1'],':value2'=>$data['some\u data\u 2']);

因为您正在使用中提到的
mysqli.*
API

您正在寻找:

但更容易的是使用

旁注:

表格
是一个,因此您必须在其周围加上反勾号,例如

$query2 = "INSERT INTO `table` VALUES(0, $data)";
                     //^     ^
另外,您在第二个查询中缺少了作为第一个参数的
$dbc
,请按如下方式添加它:

$row = mysqli_query($dbc, $query2);
我还建议您使用
或die(mysqli_error($db));
检查错误,例如

$row = mysqli_query($dbc, $query2) or die(mysqli_error($dbc));

代码不需要再查询我的问题是specefic和@fred如何转义数据?我不明白,$data是字符串还是数组?看看mysql\u real\u escape\u string()函数。@geekishfellow代码不需要重新查询是的,它是必需的,因为它取决于您使用的MYSQL API!@VincentDecaux它是一个string@geekishfellow,我强烈建议,如果你需要别人的帮助,你应该向他们提供他们要求的信息。记住,我们没有义务帮助你。你应该使用OP,可能已经使用PDO.Yo了你不知道他在用什么,因为他没有向我们展示他的代码,我们就知道了:他使用的是
mysqli.*
API!而不是PDO。@Rizier123我只是想向他/她展示一些好的实践。仅此而已。$query2=“插入表值(0,mysqli\u real\u escape\u字符串($data))可以这样使用吗?@geekishfellow如果你把它连接起来,这是可能的,但我不推荐,因为如果你有多个值,它会变得非常不可读!所以只需在你的SQL字符串之前使用它,例如
$data=mysqli\u real\u escape\u string($dbc,$data);
(顺便说一句:
$row=mysqli\u query($query2)
您缺少了
$dbc
作为第一个参数)@geekishfellow我可以知道,您为什么不接受我的答案吗?有什么问题吗?我使用了您的答案,但我现在接受的答案似乎是一个更好的答案,而且很有用。我接受了您的答案,并对另一个答案投了赞成票。