我使用以下脚本将记录插入我的数据库:
$sql = "INSERT INTO fotetweets VALUES('$tweetid','$dp', '', '$username','$tag', '$twittercontent', '$twittertimestamp', '')";
mysql_query($sql);
Run Code Online (Sandbox Code Playgroud)
但是,如果$twittercontent包含'char,我认为它会失败.正确?
如果是这样我怎么能正确处理它?
您将需要查看mysql_real_escape_string.但是,我会考虑使用mysqli或PDO类来使用预处理语句.
编辑
注意,这些都可以在准备语句的示例下从PHP手册中找到.
MySQLi的示例用法:
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_database");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* create a prepared statement */
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("INSERT INTO fotetweets VALUES(?, ?, '', ?, ?, ?, ?, '')")) {
/* bind parameters for markers */
$stmt->bind_param("issssi", $tweetid, $dp, $username, $tag, $twittercontent, $twittertimestamp);
/* execute query */
$stmt->execute();
/* close statement */
$stmt->close();
}
?>
Run Code Online (Sandbox Code Playgroud)
用法示例PDO:
<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$sth = $dbh->prepare('INSERT INTO fotetweets VALUES(?, ?, '', ?, ?, ?, ?, '')');
$sth->execute(array($tweetid, $dp, $username, $tag, $twittercontent, $twittertimestamp));
?>
Run Code Online (Sandbox Code Playgroud)
mysql_real_escape_string用法示例:
$tweetid = (int) $tweetid; // static cast to integer, if that is what it should be.
$sql = "INSERT INTO fotetweets VALUES(
$tweetid,'" . mysql_real_escape_string($dp) . "',
'', '" . mysql_real_escape_string($username) . "',
'" . mysql_real_escape_string($tag) . "',
'" . mysql_real_escape_string($twittercontent) . "',
'" . mysql_real_escape_string($twittertimestamp) . "', '')";
Run Code Online (Sandbox Code Playgroud)
您可以在上面列出的手册页中找到更多信息和额外用法示例.鉴于我知道什么$dp是我不能完全定制.
边注
这是我愿意做的所有假设.OP可以从POST和/或以数组形式获取数据,或者他可以从不同的方式获取数据.或者,或者,根据OP发布的示例,这与我可以定制到OP一样准确.如果您遇到问题或认为可以更好地解释/显示,那么请继续添加另一个解决问题的答案,而不仅仅是另一个抱怨评论评论当您不愿意"正确"时,没有人做任何事情. "回答你自己.
当然,如果它是一个数组,这会改变很多项目,OP应该清除它,而不仅仅是随机的人在猜测数据的位置和方式时"猜测".
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |