concat php值与sql查询中的整个引号

时间:2016-12-10 16:06:30

标签: php mysql concatenation string-concatenation

如何在sql查询中将这个php值与整个引号连接起来,以便在phpmyadmin数据库中正确保存?

TXT.rtf

请帮助我获取正确的sql查询,以便在我的数据库中成功插入此URL,这是表,我已将Origin_URL列设置为varchar列。数据进入该栏目。

This is table, and I have made the Origin_URL column into a varchar column. The data goes into this column.

3 个答案:

答案 0 :(得分:0)

永远不要用PHP或任何其他支持绑定语句的语言(几乎是任何现代语言)来连接SQL查询。

要使用绑定语句,首先需要准备它:

// Each value is a placeholder
$sql = "UPDATE file_contents SET Origin_URL = CONCAT('https://www.google.com/maps/dir/', ?, ',' ?, '/', ?, ',', ?) WHERE Sl = ?";

$stmt = $db->prepare($sql);

// First parameter should correspond to number and types of your arguments
// You have 5, first four are strings, fifth is a number, so "ssssd"
$stmt->bind_param('ssssd', $OriginLatId, $OriginLongId, $DestinationLatId, $DestinationLongId, $id);
$stmt->execute();

答案 1 :(得分:0)

我建议您使用PDO

    <?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

获得连接后,您可以准备好声明

    <?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>

期待这会对你有所帮助

答案 2 :(得分:-1)

您的字符串连接存在许多问题,+用于添加,单引号中的变量是字符串,而不是变量,并且您似乎在太多实例中添加引号。

您应该能够使用双引号中的复杂花括号来构建字符串:

$val1 = "https://www.google.com/maps/dir/{$OriginLatId},{$OriginLongId}/{$DestinationLatId},{$DestinationLongId}";

您可以在此处详细了解http://php.net/manual/en/language.types.string.php

或通过标准串联:

$val1 = 'https://www.google.com/maps/dir/' .  $OriginLatId .',' . $OriginLongId . '/' . $DestinationLatId . ',' . $DestinationLongId;

您可以在此处详细了解http://php.net/manual/en/language.operators.string.php

然后将其写入数据库。不需要mysql concat函数。

$sql = 'UPDATE file_contents 
SET Origin_URL = ? 
WHERE Sl = 1 LIMIT 6';
$stmt = $db->prepare($sql);
$stmt->bind_param('s', $val1);
$stmt->execute();